JürgenB: Zufallsausgabe

Beitrag lesen

Hallo Daniel,

function arrayShuffle(){
  var tmp, rand;
  for(var i =0; i < this.length; i++){
    rand = i + Math.floor(Math.random() * (this.length - i));
    tmp = this[i];
    this[i] = this[rand];
    this[rand] = tmp;
  }
}
Array.prototype.shuffle =arrayShuffle;

  
und wenn du die for- durch eine abwärtslaufende do-while-Schleife ersetzt, wird es sogar noch etwas schneller:  
  
~~~javascript
  
Array.prototype.shuffle=function() {  
 var l=this.length,t,zi,i=l;  
  do {  
   zi=Math.floor(Math.random()*i);  
   t=this[zi];  
   this[zi]=this[--i];  
   this[i]=t;  
  } while (i);  
}  

Gruß, Jürgen