CodeKitHub
Español
Herramientas generadoras

Aleatorizador de listas gratis

Pega una lista — nombres, tareas, participantes de un sorteo, lo que sea — un elemento por línea, y mézclala en un orden aleatorio justo usando un verdadero mezclado Fisher-Yates. Activa el modo de selección de ganadores para extraer solo N elementos al azar, útil para elegir al ganador de un sorteo o asignar un orden aleatorio sin revelar toda la lista mezclada.

¿Qué es esta herramienta?

Un aleatorizador de listas reordena un conjunto de elementos en una secuencia aleatoria, o extrae un subconjunto aleatorio de ella. Lo difícil es hacerlo sin sesgo: un enfoque ingenuo, como ordenar un array con una función de comparación aleatoria, produce una distribución sesgada donde algunos órdenes son mucho más probables que otros.

Esta herramienta usa el algoritmo de mezclado Fisher–Yates (Durstenfeld), el método estándar para obtener una permutación aleatoria demostrablemente uniforme — cada posible orden de tu lista tiene la misma probabilidad de aparecer.

¿Por qué utilizarlo?

  • Mezclado genuinamente imparcial — Fisher–Yates, no el común antipatrón sort(() => Math.random() - 0.5) que sesga los resultados.
  • Modo de selección de ganadores: extrae exactamente N elementos al azar en lugar de mezclar toda la lista, ideal para sorteos y rifas.
  • Eliminación opcional de duplicados antes de mezclar, para listas que puedan tener repeticiones accidentales.
  • Funciona con cualquier texto — nombres, tareas, boletos, premios — un elemento por línea.
  • Privado: el mezclado ocurre íntegramente en tu navegador, no se sube nada.

Cómo utilizarlo

  1. Pega tu lista en el cuadro, un elemento por línea.
  2. Opcionalmente marca "eliminar duplicados antes de mezclar" si la lista puede contener repeticiones.
  3. Para un reordenamiento completo, simplemente haz clic en Mezclar. Para elegir ganadores, marca la opción de N elementos y define cuántos extraer.
  4. Copia el resultado — haz clic en Mezclar de nuevo cuando quieras para obtener un nuevo orden aleatorio o una nueva extracción.

Ejemplo

Entrada

Alice
Bob
Charlie
Diana
Ethan

Resultado

Una lista reordenada al azar como Charlie, Ethan, Alice, Diana, Bob — distinta cada vez que haces clic en Mezclar.

Con el modo de selección de ganadores en 2, la misma entrada podría producir en cambio solo Ethan y Alice — una extracción aleatoria de 2 elementos, no un recorte de 2 elementos de un orden ya mezclado.

Por qué un mezclado ingenuo produce resultados sesgados

sort(() => Math.random() - 0.5) es un truco habitual que parece correcto pero no lo es: depende de que el algoritmo de ordenación llame al comparador un número específico de veces con un patrón específico, y las implementaciones reales de ordenación no lo garantizan. El efecto práctico es un mezclado en el que ciertos órdenes aparecen con más frecuencia que otros — algo lo bastante sutil como para pasar desapercibido a simple vista, pero estadísticamente medible tras muchas ejecuciones.

Fisher–Yates evita todo el problema: en lugar de pedirle a un algoritmo de ordenación que produzca aleatoriedad indirectamente, intercambia directamente cada posición con una posición restante al azar exactamente una vez, lo cual es demostrablemente uniforme sin importar la implementación de ordenación del lenguaje subyacente.

Generador de números aleatorios · Generador de UUID

Preguntas frecuentes

¿Por qué no usar simplemente array.sort(() => Math.random() - 0.5)?

Esa línea es un antipatrón bien conocido: sort() en JavaScript no garantiza que cada par de elementos se compare el mismo número de veces, por lo que el orden resultante queda medible­mente sesgado hacia ciertas permutaciones — algunos elementos acaban con más probabilidad de quedar cerca del principio o del final de lo que la aleatoriedad real produciría. Fisher–Yates evita esto por completo por construcción, y es el algoritmo que esta herramienta realmente implementa.

¿El orden del mezclado es realmente imparcial?

Sí. Fisher–Yates recorre la lista una vez y, en cada paso, intercambia el elemento actual con uno elegido de forma uniformemente aleatoria entre la parte aún no mezclada. Esto está matemáticamente demostrado que produce cada posible orden con igual probabilidad, siempre que la fuente de aleatoriedad sea buena (el Math.random() de JavaScript).

¿Cuál es la diferencia entre mezclar y el modo de selección de ganadores?

El modo de mezclado reordena todos los elementos de tu lista y te los muestra todos, solo que en un nuevo orden. El modo de selección de ganadores extrae únicamente N elementos al azar y solo muestra esos — útil cuando quieres elegir un número fijo de ganadores o muestras sin revelar toda la lista reordenada.

¿Puedo usar esto para un sorteo real con premios?

Sí, para sorteos y rifas informales esto funciona bien porque la aleatoriedad es genuinamente uniforme. Para un sorteo legalmente regulado con premios monetarios, revisa la normativa local — algunas jurisdicciones exigen un proceso de sorteo específico y auditable.

¿Eliminar duplicados cambia mi lista original?

No — la deduplicación solo afecta al resultado mezclado, y solo cuando la casilla está activada. Tu lista de entrada se mantiene exactamente como la escribiste, así que puedes activar o desactivar la opción y volver a mezclar sin tener que reescribir nada.

Herramientas relacionadas