generalised Shuffle()