Card* CardsShoe::DrawCard()
{
    // In the case of no decks present, reseed.
    if (this->Decks->Count() == 0)
    {
        this->ReSeedDeck();
    }

    Deck* firstDeck = this->Decks->Get(0);

    Card* nextCard = firstDeck->DrawCard();
    DrawnCards->Add(nextCard);

    if (firstDeck->DeckCards->Count() == 0)
    {
        this->Decks->RemoveAt(0);
    }

    return nextCard;
}