Hola a todos, se me ocurrió hacer un código un poco mas limpio, intentando hacer las cosas un poco mas sencillas y mas legible, espero les guste y les sirva como caso de estudio. Saludos!
<script>
//funcion que genera numeros aleatorios entre un minimo y un maximo (inclusive)
function aleatorio(min, max){
//Math.floor() --> redondea numeros hacia abajo.
return Math.floor( Math.random() * (max - min + 1) + min);
}
//funcion que sortea los numeros
function sortearAleatorios(cantidad){
//variable para almacenar los numeros
var secretos = [];
//validacion de la cantidad de numeros a sortear. Establece el maximo en 5
if(cantidad > 5){
cantidad = 5;
}
//Rutina para generar los numeros aleatorios e insertalos en la variable
for(var i = 0; i < cantidad; i++){
//rutina que comprueba que el numero aleatorio no exista en el array
do{
var numAleatorio = aleatorio(1,10);
//la funcion includes() comprueba si el argumento existe en el array.
//si existem continuo generando numeros aleatorios hasta encontrar uno que no este dentro del array
}while(secretos.includes(numAleatorio));
//inserto el numero aleatorio en el array
secretos.push(numAleatorio);
}
//retorno el array con los numeros
return secretos;
}
//llamo a la funcion que me sortea los numeros
var secretsNums = sortearAleatorios(4);
</script>