public void shuffle(CardDeck deck)
        {
            CardDeck tempDeck = new CardDeck();
            tempDeck.assign(deck);

            deck.clear();

            Random rnd = new Random();
            int randomIndex;

            while (tempDeck.Count > 0) {
                randomIndex = rnd.Next(tempDeck.Count);

                AbstractCard card = tempDeck.getCardAt(randomIndex);
                deck.addCard(card);
                tempDeck.removeCardAt(randomIndex);
            }
        }