谁能帮我解释一下 这个扑克牌代码
<script>  
 var   array1=new   Array(55);   
 Array.prototype.Random=function()      { 
          for(var   i=1;i <this.length;i++){ 
                var   rnd=Math.floor(Math.random()*(i+0.99999)) 
                this[i]=this[rnd];//不太明白 
                this[rnd]=i;//不太明白 
          } 
 return   this; 
 }   
 document.write(array1.Random()) 
  </script>
------解决方案--------------------1。看为明白可以多看几遍 
 2。乱用prototype 
 3。上面代码洗出来的是55张牌,其中有一张白牌   
 附:   
  <html>    
  <head>  
  <meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">  
  <title> JK:支持民族工业,尽量少买X货 </title>  
  </head>    
  <body>  
  <pre>  
 洗牌算法: 
 部分代码来自: 
 http://community.csdn.net/Expert/topic/3858/3858964.xml?temp=.5909693 
 fason的回贴。   
  </pre>    
  <script language= "JavaScript ">  
  <!--   
 function getRandomArray(m,n)   //得到m张牌里的n张牌 (m> =n> 0) 
 { 
 	if(n==null || n==m ) 
 		return getRandomPlayCard(m); 
 	var array1=new Array(m); 
 	for(var i=0;i <m;i++) 
 		array1[i]=i; 
 	var m2=m-0.00001; 
 	for(var i=0;i <n;i++) 
 	{ 
 		var rnd=Math.floor(Math.random()*m2); 
 		var swap=array1[i];array1[i]=array1[rnd];array1[rnd]=swap; 
 	} 
 	return(array1.slice(0,n)); 
 }     
 function getRandomPlayCard(m) //洗牌 
 { 
 	var array1=new Array(m); 
 	for(var i=0;i <m;i++){ 
 		var rnd=Math.floor(Math.random()*(i+0.99999)) 
 		array1[i]=array1[rnd]; 
 		array1[rnd]=i; 
 	} 
 	return array1; 
 }     
 document.write(getRandomPlayCard(100)+ " <br>  <br>  "+getRandomArray(100,5));   
 -->   
  </script>    
  </body>  
  </html>