PK Systems PK Systems
Generadores

Generador de Números Aleatorios

Saca números en cualquier rango — con o sin duplicados, ordenados o mezclados, listos para pegar.

Generador de Números Aleatorios

Resultado

Qué hace esta herramienta

Genera enteros aleatorios en cualquier rango, en cualquier cantidad de 1 a 10.000. Activa o desactiva los duplicados (off para sorteos tipo lotería, on para simular secuencias de dados o monedas), elige ordenar la salida ascendente o dejarla mezclada y selecciona el formato — un número por línea, separado por coma para hojas de cálculo, por espacio para pegar en CLI, o como literal de array JavaScript para código. La aleatoriedad es uniforme de verdad: usamos crypto.getRandomValues() con muestreo por rechazo para eliminar el sesgo de módulo que introduce Math.random() % range. Para sorteos únicos en rangos densos, hacemos un Fisher-Yates parcial; para rangos dispersos, un hash-set con reintentos. Todo corre local — sin subida, sin logs, sin límite de tasa.

Cómo usarlo

Define un mínimo y un máximo — pueden ser negativos, cero o lo que sea. Define cuántos números necesitas. Decide si permites duplicados (off para sorteos, on para tiradas repetidas). Decide si ordenas ascendente. Elige formato: líneas, coma, espacio o array. Pulsa Generar. El resultado aparece en el panel; si pides un número, sale grande; si pides varios, va en un bloque de código con scroll. Pulsa Copiar para mandarlo al portapapeles. Volver a ejecutar con los mismos ajustes da un sorteo nuevo cada vez — no hay semilla.

Cómo funciona la aleatoriedad

Cada sorteo muestrea un entero de 32 bits desde crypto.getRandomValues() y rechaza cualquier valor por encima de floor(2^32 / range) * range. El sorteo aceptado módulo range más min es tu número — comprobadamente uniforme en todo el rango. Para sorteos únicos usamos una de dos estrategias: cuando el rango es denso (≤ 200.000 valores), materializamos el pool entero y hacemos Fisher-Yates parcial sobre las primeras count entradas — es O(count), no O(range). Cuando el rango es disperso y grande, usamos un hash-set con reintentos — limitado por el tope de 10.000 para que los reintentos no exploten. La ordenación (cuando está activa) es una pasada final ascendente.

Ajustes habituales

Algunas combinaciones de ejemplo para empezar.

Uso Ajustes
Números de la Primitiva (6/49)Mín 1, máx 49, cant 6, sin duplicados, ordenado
Secuencia de monedas (10 lanzamientos)Mín 0, máx 1, cant 10, con duplicados
Byte de color aleatorioMín 0, máx 255, cant 1
3 ganadores entre 100Mín 1, máx 100, cant 3, sin duplicados

Preguntas frecuentes

¿Es realmente aleatorio?
Sí — uniforme de manera comprobable. Usamos crypto.getRandomValues() con muestreo por rechazo, que es el enfoque CSPRNG estándar para rangos enteros sin sesgo.
¿Y si pido más únicos de los que cabe el rango?
La herramienta lo detecta y muestra un error — no se pueden sacar 10 únicos de un rango de 5. O activas duplicados o amplías el rango.
¿Puedo sembrar el RNG?
No. Los CSPRNG por diseño no se pueden sembrar para reproducibilidad — eso rompería la garantía de seguridad. Si necesitas salida "aleatoria" reproducible para pruebas, usa una librería PRNG sembrada en código.
¿Cuál es la cantidad máxima?
10.000 por ejecución. Más allá, la salida se vuelve incómoda en navegador; para sorteos mayores, ejecuta varias veces o genéralos en servidor.
¿Funciona con números negativos?
Sí. Mín y máx pueden ser cualquier entero, positivo o negativo. El rango es max − min + 1, así que asegúrate de que máx ≥ mín.
¿Se envía algo por la red?
No. La generación corre en tu navegador. La salida se queda local hasta que la copies.