piapia123
es

Sorteo aleatorio

Texto

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Pega una lista, un elemento por línea, y extrae unos pocos al azar. La fuente aleatoria es `crypto.getRandomValues`, no `Math.random`. La previsibilidad es un problema real en un sorteo: `Math.random` es una secuencia pseudoaleatoria que en algunos motores se puede invertir, así que observar suficientes resultados delata el siguiente. El sorteo en sí es justo: todos los elementos tienen la misma probabilidad. «Sin repetir» está activado por defecto, y pedir demasiados da error. Sacar diez elementos distintos de una lista de cinco solo puede dar cinco, y la herramienta dice «la lista solo tiene 5 elementos» en vez de devolver cinco en silencio o de permitir repeticiones a escondidas —lo primero te hace pensar que está rota, lo segundo rompe la promesa—. Para permitir repeticiones (extraer devolviendo el elemento a la lista), desmarca la casilla. «Ordenar según la lista» es para leer los resultados en voz alta. Un sorteo queda bien en orden aleatorio; pero cuando hay que leer los ganadores siguiendo una lista, o compararlos con la tabla original, ir saltando resulta incómodo, y al marcarlo se recupera el orden propio de la lista. En qué se diferencia de barajar texto: aquella te da todo, desordenado; esta te da los pocos que han salido.

Funciones

  • Extrae de 1 a 200 elementos de una lista al azar
  • La fuente aleatoria es `crypto.getRandomValues`, no una secuencia pseudoaleatoria predecible
  • El muestreo por rechazo mantiene la misma probabilidad para todos: el principio de la lista no sale más
  • Sin repetir por defecto; pedir demasiados da error y dice cuántos elementos hay
  • Se puede permitir la repetición (extraer devolviendo el elemento a la lista)
  • Se pueden ordenar los elegidos según el orden original de la lista
  • Las líneas vacías y los espacios sobrantes se ignoran, así que pegar basta
  • Cada elección es copiable en su fila, con su número de sorteo

Cómo se usa

  1. Pega la lista, un elemento por línea
  2. Indica cuántos extraer y, si hace falta, marca repetir u ordenar según la lista
  3. Pulsa Sortear otra vez para un nuevo sorteo y copia el resultado

Preguntas frecuentes

¿Es justo el sorteo? ¿Puede estar sesgado?
Es justo, en los dos puntos. La fuente es el generador criptográfico del sistema operativo (`crypto.getRandomValues`), cuyo estado interno nunca se expone y que no se puede predecir a partir de resultados anteriores; `Math.random` sí se puede predecir en algunos motores, lo que lo hace inservible para un sorteo. La asignación usa muestreo por rechazo en vez de módulo: un módulo haría un poco más probables las primeras posiciones (con seis elementos repartiendo 256 valores aleatorios, cuatro posiciones quedan con una fuente extra cada una). El sesgo es mínimo pero real, y un sorteo es justo donde importa.
¿Por qué «sin repetir» da error en vez de devolver menos?
Porque es una promesa. Pides diez elementos distintos, recibes cinco y pensarás que la herramienta está rota o que has contado mal; recibes diez con una repetición dentro y pensarás que la eliminación de repetidos falló. Ambas cosas son peores que un error, y el error incluso te dice cuántos elementos tiene la lista, así que sabes al momento si cambiar la lista o permitir repeticiones.
¿En qué se diferencia de barajar texto?
Un barajado te devuelve todo, reordenado; todavía tienes que quedarte tú con los primeros, y el hecho de que esos fueran los elegidos no se resalta. Esta herramienta devuelve los elegidos, numerados y copiables uno a uno. Para tener toda la lista en orden aleatorio, baraja; para sacar tres nombres de ella, usa esta.

Herramientas relacionadas