I am designing a card game called Snap (Heres a link showing rules <http://boardgames.about.com/od/cardgames/a/snap.htm>), in my version, the player will have to click on the pile in the middle if a pair shows up. I have 4 classes currently, one for the card (which is a int called cardValue\_), one for the players hand, one for the original deck of cards and one for the pile of cards in the middle. So the Deck, Pile and Hand classes has a List of Cards in them. I am now trying to write a shuffle method for the Deck class which contains a list of Cards. Which will pick a random card and move it to a new list until all the cards are picked, then move them back to the original list, thus doing a simple shuffle. My method so far looks like this...

```
public List<Deck> Shuffle(List<Card> cardDeck)
    {
        int index = 0;
        Random randomCard = new Random();
        List<Card> newDeck = new List<Card>();

        while (index < cardDeck.Count)
        {
            int ran = randomCard.Next(0, cardDeck.Count);
            foreach (Card card in cardDeck)
            {

            }
        }
    }

```

I am trying to work out what should go in the foreach loop (unless the whole method is wrong), but now I am thinking I have declared all my Cards in the wrong place, all 52 cards are currently declared in the Form, or should i be declaring them in the Deck class?