¿Número aleatorio sin repetir en Javascript?

  • Autor Autor Fabián Rodríguez
  • Fecha de inicio Fecha de inicio
Fabián Rodríguez

Fabián Rodríguez

Lambda
Programador
Verificación en dos pasos activada
Hola.
Estoy intentando crear un código en JS que me permita generar números aleatorios pero sin repetir.
Sigo lo siguiente:

1. Declarar un array con los posibles valores a elegir para ir eliminándolos cuando se el random los genere.
2. Generar un número aleatorio.
3. Guardar el indice del número generado
4. Guardar en una variable el número con el índice elegido.
5. Borrar el número del índice (array).

Pero NO funciona. Hay números que se siguen repitiendo que muestran un "undefined" cuando se imprimen. ¿Alguna idea?


HTML:
var num = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; 
var random = Math.floor(Math.random()*num.length)
var indice = num.indexOf(random);				
var number = num[indice];				
num.splice(indice, 1);
 
Hola [MENTION=1203]Fabián Rodríguez[/MENTION], para que te funcione usa la variable random como indice de esta manera:

Insertar CODE, HTML o PHP:
var num = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25];
var indice = Math.floor(Math.random()*num.length);
var number = num[indice];
num.splice(indice, 1);
 
Hola [MENTION=1203]Fabián Rodríguez[/MENTION], para que te funcione usa la variable random como indice de esta manera:

Insertar CODE, HTML o PHP:
var num = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25];
var indice = Math.floor(Math.random()*num.length);
var number = num[indice];
num.splice(indice, 1);

Funciona a la perfección. Mil gracias. De seguro esto también ayudará a los que lleguen por Google :fatigue:
 
Atrás
Arriba