Generador de números y cadenas aleatorias
Genera números aleatorios en un rango sin duplicados o cadenas aleatorias con letras, dígitos y símbolos, usando crypto.getRandomValues.
Cómo generar números y cadenas aleatorias
- 1
Elige números o cadena
Cambia entre un rango de números, enteros o decimales, y una cadena aleatoria creada a partir de los tipos de caracteres que elijas.
- 2
Configura el rango o el alfabeto
Para números, define mínimo, máximo y si se permiten duplicados. Para cadenas, activa o desactiva tipos de caracteres, o pega tu propio alfabeto personalizado.
- 3
Genera y copia el resultado
Se muestran hasta 10 000 valores de una vez, uno por línea, listos para copiarlos directamente al portapapeles.
Por qué usar crypto.getRandomValues y no Math.random
Math.random de JavaScript es rápido, pero nunca se diseñó para resistir intentos de predicción. Con unas cuantas salidas de algunos motores basta para reconstruir su estado interno y predecir todos los valores siguientes. crypto.getRandomValues en cambio usa el generador criptográficamente seguro del sistema operativo, la misma fuente que usan los navegadores para crear claves de cifrado, así que no se puede deducir nada de la secuencia solo observándola. Esta herramienta usa esa fuente en todo, también al mezclar una lista cuando los duplicados están desactivados.
Sesgo del módulo y cómo lo elimina el muestreo por rechazo
La forma ingenua de convertir un número aleatorio de 32 bits en «un valor de 1 a 100» es tomarlo módulo 100, pero eso favorece silenciosamente la parte baja del rango: 2^32 no es divisible de forma exacta por 100, así que los valores sobrantes que no caben en un múltiplo completo se redondean hacia abajo al mismo puñado de resultados. Esta herramienta en su lugar descarta cualquier extracción que caiga en ese resto desigual y vuelve a intentarlo. Eso se llama muestreo por rechazo y hace que cada número del rango pedido tenga exactamente la misma probabilidad de salir.
Cada valor se genera en esta pestaña
Los números y cadenas se generan por completo en tu navegador usando la Web Crypto API. Nada de lo que generas se envía a un servidor ni se guarda en el navegador, y el enlace para compartir solo codifica tus ajustes, nunca los valores reales, porque un enlace predecible anularía el propósito de un sorteo aleatorio.
Preguntas frecuentes
¿Por qué crypto.getRandomValues es mejor que Math.random?
Math.random está optimizado para la velocidad, no para la imprevisibilidad, y se ha demostrado que su salida puede reconstruirse a partir de una pequeña muestra de resultados en varios motores de JavaScript. crypto.getRandomValues usa el generador de números aleatorios criptográficamente seguro del sistema operativo, que no ofrece ese atajo.
¿Cómo funciona «sin duplicados» en rangos grandes?
Para rangos de hasta cinco millones de valores posibles, esta herramienta mezcla la lista completa con un barajado de Fisher-Yates y toma tantos como hayas pedido. Por encima de eso, extrae valores uno a uno y se queda solo con los nuevos, lo que sigue siendo rápido porque las colisiones son raras cuando pides muchos menos valores de los que contiene el rango.
¿Qué es el sesgo del módulo y por qué no es solo un rango con %?
Reducir un número aleatorio de 32 bits con una simple operación de resto hace que la parte baja del rango sea un poco más probable, porque 2^32 no es múltiplo exacto de la mayoría de tamaños de rango. Esta herramienta rechaza y vuelve a sacar la pequeña franja de valores que causaría esa desviación, así que todos los resultados del rango son igual de probables.
¿Puedo usar el resultado como contraseña?
Una cadena aleatoria generada aquí con un alfabeto amplio y suficiente longitud es tan sólida como una contraseña de un generador específico. Si quieres cifras de entropía, una puntuación de fuerza o una frase de paso, el generador de contraseñas está pensado justo para eso.
¿Cuántos números o cadenas puedo generar a la vez?
Hasta 10 000 en un solo lote, tanto si generas números como cadenas. Eso cubre de sobra sorteos, datos de prueba y muestreos sin tener que ejecutar la herramienta varias veces.
¿Los valores generados llegan a salir de mi navegador?
No. Cada número y cada carácter se genera localmente usando la Web Crypto API y no se sube a ningún sitio. Copiarlos al portapapeles es la única forma en que un valor sale de la página y está totalmente bajo tu control.
¿Por qué el enlace compartido no incluye los números reales?
El enlace solo reproduce tus ajustes (el rango, la cantidad, si se permiten duplicados), nunca los valores en sí. Un enlace que pudiera repetir los mismos números «aleatorios» bajo demanda los haría predecibles y eso va en contra del objetivo de generarlos así.