тот вариант не подходит, автору надо, чтобы все элементы гарантированно были не на своих местах.
function forceShuffle(arr) {
for (var i = arr.length - 1; i > 0; --i) {
var j = Math.floor(Math.random() * i);
var t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
return arr;
}
alert(forceShuffle([1, 2, 3, 4, 5]).join(', '));