working shuffle method