Check out
Maksim-K. Anestev’s
Shuffle