¿Fórmula para tirar un dado?
Math.floor(Math.random() * 6) + 1 da enteros 1-6 con probabilidad igual.
Genera números aleatorios con rango y cantidad personalizados
Pseudoaleatorio, bien distribuido estadísticamente. Para seguridad use crypto.getRandomValues().
Math.floor(Math.random() * 6) + 1 da enteros 1-6 con probabilidad igual.
Use Fisher-Yates en un array [1..45] y tome los primeros 6 elementos.
Los ordenadores suelen usar números pseudoaleatorios. Math.random() usa un algoritmo determinista basado en semilla.
Si un atacante conoce la semilla, puede reproducir todos los valores "aleatorios". Use crypto.getRandomValues() para seguridad.
Fisher-Yates recorre el arreglo desde el final intercambiando posiciones. Complejidad O(n).
Los buenos generadores producen distribución uniforme. Fórmula entera: Math.floor(Math.random() * (max - min + 1)) + min.
La ventaja de la casa en casinos es diseño matemático, no trampa en números aleatorios.