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];
}
};