The Shuffler trait.
Shuffler
A trait defining Shuffler objects that can be used for shuffling data in various manners