te muestro la base sobre como operar con los arrays para que tengas ideas de como proceder. es un ejemplo bien generico que no refleja ninguna relacion directa a lo que quieres lograr pero refleja parte del mecanismo.
Código:
var array = [0, 1, 2, 3, 4], count = 0, len = array.length;
function foo(){
var item = array.shift();
console.log("item: "+item);
array.push(item);
if(!(++count % len)) array.sort(function(){return Math.round(Math.random()) - .5;}), console.log(array);
}
en este ejemplo, fijate que cada cinco invocacion a la funcion
foo, el array se desordena. el elemento escogido del array sera dado por el metodo shift. en cada invocacion de
foo, shift siempre devuelve un valor distinto porque shift remueve el primer elemento del array. sin embargo, para que ese array no quede vacio, se vuelve agregar el elemento con push. si tienes una consola de error como firebug o la de chrome, el codigo imprime los resultados en este. puedes hacer un simple analisis invocando
foo por intervalos. por ejemplo,
setInterval(foo, 1500).
nota: segun afirman algunos que el metodo que he utilizado para desordenar el array es impreciso. puedes buscar mas opciones por la web.