Valor aleatorio en cualquier intervalo

Problema:

Se trata de generar numeros aleatorios más allá del intervalo 0-1

Todos los lenguajes de programación tienen alguna forma de generar números aleatorios. En Javascript es el método math.random( ), pero esto genera un número entre 0 hasta 1 (sin llegar a 1) ¿Y siquiero un valore entre 1 y 36 por ejemplo?    

 

Solución

Partimos del número entre 0 y 1 y aplicamos algo de matemáticas

Si el número mínimo que queremos es por ejemplo 5, y random nos da como mímino 0 pues basta con sumar 5 al número generado. Si el máximo número que queremos es por ejemplo 30 pues multiplicamos el aleatorio por 3,   edondemaos (el máximo será 30*0.9999 que es 29 y le quito 4 para tener como máximo 30. (29 - 4 + 5 = 30) 

Ejemplo

function numAzar(min, max)

  let rnd = Math.random();

  let resdo = Math.floor(rnd*(max - min + 1)) + min;

  return resdo;

}

console.log( numAzar(5, 30));

Si llamas a la función numAzar(5, 30) te dará un número entre 5 y 30 ambos incluídos.

Fíjate si el random( ) sale 0 la variable resdo toma el valor 5.

Si el random( ) da 0.9999 (el máx) resdo toma el valor  30: que viene de  0.999*(30 - 5 + 1) redondeado por abajo es 25, le sumas 5 (el mínimo) y tienes 30, el máximo valor del intervalo.