Código
function selecLista() { var zoo=['Gato','Perro','Caballo','Ganso','Pez','Foca','Papagayo','Coyote','Milano','Nutria','Cotorra','Tigre']; //Array que contiene las palabras que pueden salir var zoo2=new Array; //Array con la misma longitud que la de "zoo" que tendra el valor 1 en la posición de la palabra que haya salido anteriormente var lote=new Array; //Array con los valores finales var x; //Variable estilo puntero que apuntará la posición del array que se pretende colocar para comprobar si ha sido puesta anteriormente o no. for(var k=0;k<Math.floor(Math.random()*zoo.length)+1;k++){ //Bucle for desde 0 hasta como máximo la longitud del array que contiene las palabras, es decir, la longitud de la variable lote podrá variar entre 1 y la longitud de la variables "zoo". x=Math.floor(Math.random()*zoo.length); //Se apunta a una posición del Array "zoo" while(zoo2[x]==1){ //Se comprueba que no haya estado colocada anteriormente x=Math.floor(Math.random()*zoo.length); //Si ha estado puesta anteriormente se apunta a otra posición. } lote[k]=zoo[x]; //Una vez se tiene una palabra no puesta anteriormente se añade al "lote" zoo2[x]=1; //Se registra que ha sido puesta en el array de registro. } document.write(lote); // Se muestra la variable }; selecLista()
Si utilizas esta función varias veces en el mismo proceso es posible que, tras la línea que muestra la variable, tengas que inicializar las variables "lote" y "zoo2".
Un saludo!