新手求助!C#入门经典3中一个示例中的代码不理解
public   void   Shuffle() 
                         { 
                                     Card[]   newDeck   =   new   Card[52]; 
                                     bool[]   assigned   =   new   bool[52]; 
                                     Random   sourceGen   =   new   Random(); 
                                     for   (int   i   =   0;   i    <   52;   i++) 
                                     { 
                                                 int   destCard   =   0; 
                                                 bool   foundCard   =   false; 
                                                 while   (foundCard   ==   false) 
                                                 { 
                                                             destCard   =   sourceGen.Next(52); 
                                                             if   (assigned[destCard]   ==   false) 
                                                                         foundCard   =   true; 
                                                 } 
                                                 assigned[destCard]   =   true; 
                                                 newDeck[destCard]   =   cards[i]; 
                                     } 
                                     newDeck.CopyTo(cards,   0); 
 这是一副扑克牌.Shuffle()是创建1个扑克牌临时数组.并把扑克牌从现有的数组随即复制到这个数组中.每次循环,都用.NET   Framework中的System.Random类的实例生成一个0-51之间的随即数.进行了实例后,对象就使用方法Next(X)生成0-x之间的随即数.有了1个随即数后,就可以使用他作为临时数组中Card对象的下标.以便复制cards数组中的扑克牌. 
 还有1个bool变量的数组,在复制每张牌时,把改数组中的值指定为true.生成随即数时检查这个数组,看看是否已经把一张牌复制到临时数组中由随即数指定的位置上了.如果复制好了,就将生成另一个随即数. 
 上面是书中的解释.我不太理解其中的代码. 
 bool   foundCard=false;中的foundCard是什么.为什么这样写呢? 
 int   destCard   =   0; 
                                                 bool   foundCard   =   false; 
                                                 while   (foundCard   ==   false) 
                                                 {