Add basic shuffle/randomize functionality

The shuffle functionality isn't really that great right now
but it's good enough to go to beta. It should be improved later.