Hallo Micha,
Sieht nach der perfekten Lösung aus ;-)
Nicht ganz, aber fast. So sind sie wirklich gleichverteilt:
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;
Hier werden die Elemente der Reihe nach aus den noch nicht verwendeten ausgewählt. Wenn man das geschickt macht, kommt man genau so mit einem Array aus (ich habe den Algorithmus ja fast nicht abgeändert).
Grüße
Daniel