adding shuffling to the deck (changes its own internal state) and making the CardDeck threadsafe since it has a significant amount of internal state