Aleatório sem repetir por último

Então, eu queria imprimir aleatoriamente os itens de um array sem repetir a última coisa impressa em JavaScript. Isso saiu:

lastIndex = 0; // Just the first time. Could be a random number too.

setInterval
(function(){
lastIndex
= dnr(lastIndex, 10); // 10 being the max.
console
.log(lastIndex);
}, 1000); // Every 1 sec.

// Do not repeat. Never gives the same number twice.
function dnr(lastIndex, length){
var randIndex = Math.floor((Math.random()*length));

while (randIndex == lastIndex){
var randIndex = Math.floor((Math.random()*length));
}
return randIndex;
}