Llego aquí después de una pregunta anterior. La mejor solución que yo he encontrado es DESORDENAR el array y recorrerlo tranquilamente.
Por ejemplo
Código ActionScript :
var numeros:Array=new Array()
//lo lleno
for (int i=0;i<10;i++){
numeros.push(i)
}
trace(numeros) //saldrá 0,1,2,3,4,5,6,7,8,9
//lo desordeno
for (int j=0;j<10;j++){
var tmp:int=numeros[j]
var k:int=Math.floor(Math.random()*numeros.length))
numeros[j]=numeros[k]
numeros[k]=tmp
}
trace(numeros) //saldrá lo que sea, por ejemplo 3,2,6,7,8,0,1,4,5,6,9
//Ya sólo tengo que recorrer los elementos del array uno a uno
foreach (int numero in numeros){
trace(numero)
}