Según la documentación oficial, Math.random() en JavaScript devuelve un número decimal aleatorio en el rango [0, 1), lo que significa que incluye al 0, pero nunca al 1.
Cuando usamos la expresión:
Math.random() * 10
estamos multiplicando ese número aleatorio por 10, por lo tanto, ahora el rango se convierte en [0, 10). Es decir:
Puede generar valores como 0, 4.56, 9.999, etc.
Nunca generará 10.
Entonces, si quiero obtener un número entero entre 1 y 10, incluyendo ambos extremos, necesito:
Math.floor(Math.random() * 10) + 1;
Proceso:
Math.random() * 10
genera un número entre 0 y 9.999....Math.floor(...)
lo redondea hacia abajo, obteniendo un número entre 0 y 9.- Al sumar 1, obtenemos un número final entre 1 y 10.