Cómo funciona
Pon un mínimo y un máximo (se admiten negativos), elige cuántos quieres y decide si se permiten duplicados. El widget genera enteros uniformes criptográficamente dentro del rango inclusivo. Sin repeticiones, usa un Fisher–Yates parcial, así que incluso elegir 100 números entre 1 y 1.000.000 es rápido y da resultados realmente uniformes — sin que se dispare un bucle de rechazo. La salida va ordenada de menor a mayor para revisar los picks de un vistazo y detectar el más pequeño/grande, que suele importar más que el orden en que salieron (los ganadores de un sorteo se anuncian por número de billete ascendente, los números de lotería se leen en orden, etc.).
La fórmula
N es el número de picks, min/max son límites inclusivos. El paso de "muestreo por rechazo" descarta los valores de byte que caerían en la pequeña "zona resto" donde el módulo sobre-representaría el extremo bajo del rango — el mismo truco de uniformidad que usa el dado. El sorteo Fisher–Yates es el clásico "baraja la mazo y toma N cartas", simplificado para solo sacar N en lugar de barajar todo. Corre en O(N) tiempo y usa O(max-min) memoria.
Ejemplo de cálculo
- Lotería 6/49: min=1, max=49, cantidad=6, sin repeticiones → p. ej. [4, 11, 19, 27, 33, 42].
- Simulación de cara/cruz: min=0, max=1, cantidad=20 con repeticiones → 20 ceros/unos para demos de estadística.
- Anomalía térmica al azar: min=-30, max=45, cantidad=1 → p. ej. -7.
Preguntas frecuentes
¿Puedo elegir decimales (p. ej. 0,0–1,0), no solo enteros?
No directamente — el widget devuelve enteros. Para 0,0–1,0 con tres decimales, pide enteros en 0–1000 y divide entre 1000 mentalmente (o en una hoja de cálculo). Para precisión arbitraria una futura mejora podría incluir un selector de decimales, pero la versión entera cubre >95% de los casos reales (sorteos, tiradas tipo dado, elegir un valor de una lista discreta).
¿Por qué los resultados van ordenados?
Porque para la mayoría de usos (ganadores de sorteo, números de lotería, muestreo) el orden en el que salieron no importa — lo que quieres ver es qué números salieron, de forma rápida. Ordenado ascendente, ves al instante el más pequeño y el más grande. Si necesitas el orden de salida (por ejemplo para una clasificación), genera uno cada vez con cantidad = 1 y copia cada resultado antes de regenerar.
¿Qué diferencia hay entre "con repeticiones" y "sin"?
"Con repeticiones" significa que cada pick es independiente — el mismo número puede salir dos veces (o más) en el mismo conjunto. En términos matemáticos, muestreo "con reemplazo". Útil cuando quieres una tirada nueva e independiente cada vez (simular cara/cruz, generar valores de prueba sin relación). "Sin repeticiones" significa que cada número solo puede salir una vez en el conjunto, como sacar bolas de un bombo sin reponerlas. Útil cuando hay un cupo finito (tickets de sorteo, números de lotería, sacar equipos de una lista).
¿Hay un rango o cantidad máxima?
El widget limita "cuántos" a 500 para que la lista quede legible. El rango en sí llega a ±2.000 millones (límite de entero 32-bit), así que en uso normal no lo tocas. Sin repeticiones, la cantidad debe ser ≤ (max − min + 1), claro: no puedes sacar 100 únicos de un rango de 50. El widget muestra un error en línea si pides lo imposible.