Use a better shuffle algorithm