Avatar ·

¿Cómo generar un número entero aleatorio en un rango dado en JavaScript?

¡Hola a todos! Soy nuevo en JavaScript y no puedo entender cómo generar números enteros aleatorios en un rango específico. Conozco la función Math.random(), que devuelve un número aleatorio de 0 (inclusive) a 1 (exclusivo). Pero necesito obtener números enteros, por ejemplo, de 5 a 10 inclusive. Intenté escribir este código:
function getRandomNumber(min, max) {
  return Math.floor(Math.random() * max) + min;
}
Pero funciona incorrectamente: a veces devuelve números mayores que max, y a veces menores que min. Por ejemplo, al llamar a getRandomNumber(5, 10) obtuve 14 o 3. ¿Cuál es mi error? ¿Cómo escribir correctamente una función que devuelva un número entero aleatorio en el rango [min, max] (incluyendo ambos límites)? Agradecería una explicación detallada con ejemplos funcionales. ¡Gracias de antemano! <<>>

Forma correcta de generar un número entero aleatorio en un rango

Tu error es que multiplicas Math.random() solo por max, sin tener en cuenta el rango.