ahora es aleatorio, pero continua ocurriendo lo mismo si el array contiene 4 elementos, 3 de ellos parten con un 33,333333.... % de posibilidades de aparecer de inicio y el otro (el aleatorio) con un 0%. la paridad está en que los 4 elementos partan con un 25% de posibilidades de aparecer de inicio.
podemos seguir dando vueltas hasta que echemos la pota. pero no se logrará cambiar ese hecho, por que el problemas radica aquí
Cita: i=(i+Math.floor(Math.random()*(datos.length-1)+1))%datos.length;