fixed shuffle method