Check out
Danielle Allen’s
Shuffle