Расположите элементы в массиве последовательно, чтобы вы не могли перезаписать уже заполненные позиции, и используйте Shuffle для перемешивания массива в случайном порядке.
Но поскольку в Javascript такой функции нет, вам придется написать ее самостоятельно. Нечто подобное будет работать.
shuffle = function(o){
for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
alert(shuffle([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));
http://jsfiddle.net/uxnn7/