Faster an equally effective:
Array.prototype.shuffle2 = function (){
var r = [];
var l = this.length, i;
if ( l == 0 ) return;
for (i = 0; i < l; i++) {
r[i] = this[i];
}
while ( l-- ) {
this[l] = r.splice(Math.floor(Math.random() * (l + 1)), 1)[0];
}
};
Faster an equally effective: Array.prototype.shuffle2 = function (){ var r = []; var l = this.length, i; if ( l == 0 ) return; for (i = 0; i < l; i++) { r[i] = this[i]; } while ( l-- ) { this[l] = r.splice(Math.floor(Math.random() * (l + 1)), 1)[0]; } };