Fast Shuffle Algorithm