Add shuffle algorithm