Add shuffle functionality

@deini @alexmckenley 
will do in separate pr