чуть сократил ещё
Array.prototype.randomShuffle = function(c, b) {
c = c || 0;
b = ++b || this.length;
var a = b - c;
b = a - this.length;
this.length = a--;
for (; 0 <= a && !(a < b); a--) {
var d = Math.floor(Math.random() * a),
e = void 0 === this[d] ? d + c : this[d];
this[d] = void 0 === this[a] ? a + c : this[a];
this[a] = e
}
this.reverse();
this.length -= b;
return this
};
alert( Array(5).randomShuffle(-1,1))//заполнение пустого массива идёт на длину указанного диапазона от min до max
alert( Array(5).randomShuffle(-10,10))