Check out
Mark Vivilius’s
Shuffle