add card shuffle algorithm