Mezclador de Listas Aleatorias - Herramienta Gratuita de Reordenamiento Aleatorio
Mezclador de listas aleatorio gratuito que utiliza el probado algoritmo de Fisher-Yates. Reordena instantáneamente nombres, estudiantes, equipos o tareas. Perfecto para profesores, torneos y decisiones imparciales. No requiere registro.
Mezclador Aleatorio de Listas
Ingrese los elementos a mezclar, uno por línea. Las líneas vacías se eliminarán automáticamente.
Documentación
¿Qué es una herramienta para barajar listas aleatoriamente?
Un mezclador aleatorio de listas es una herramienta que toma una lista de elementos y los vuelve a ordenar de una forma nueva y aleatoria. Escriba nombres, tareas o cualquier otra cosa, uno por línea, y la herramienta los reordena de modo que todos los órdenes posibles tengan la misma probabilidad de salir. Esta herramienta usa el algoritmo de Fisher–Yates, un algoritmo muy conocido para producir órdenes aleatorios sin sesgo.
Cómo usar el mezclador aleatorio de listas
- Escriba o pegue la lista en el cuadro, un elemento por línea.
- Haga clic en «Aleatorizar lista». Los elementos se reorganizan al instante.
- Lea la lista mezclada debajo del botón, numerada según su nuevo orden.
- Haga clic de nuevo en «Aleatorizar lista» para realizar una nueva mezcla independiente.
- Haga clic en «Copiar resultado» para copiar el nuevo orden, o en «Borrar» para empezar de nuevo.
Las líneas vacías de la entrada se eliminan automáticamente, por lo que los saltos de línea adicionales no crearán entradas vacías en los resultados.
¿Cómo funciona el algoritmo de barajado de Fisher-Yates?
La mezcla de Fisher-Yates recorre la lista una vez, empezando por el último elemento y avanzando hacia el principio. En cada paso elige aleatoriamente un elemento de la parte de la lista que aún no se ha colocado y lo intercambia con el elemento de la posición actual.
Fórmula de la mezcla de Fisher-Yates
Para una lista de n elementos, numerados desde la posición 0 hasta la posición n − 1:
1for i from n − 1 down to 1:
2 choose a random whole number j, where 0 ≤ j ≤ i
3 swap the items at positions i and j
4El bucle se ejecuta n − 1 veces, por lo que la mezcla requiere aproximadamente n pasos en total. Esto se denomina tiempo lineal y se escribe O(n). Como el algoritmo considera cada posición exactamente una vez y extrae elementos de un conjunto de opciones bien definido que se reduce progresivamente, cada una de las n! (factorial de n: n × (n − 1) × ... × 1) ordenaciones posibles tiene la misma probabilidad de ser el resultado.
Ejemplo: mezcla de una lista de cuatro elementos
Se comienza con cuatro elementos en las posiciones 0 a 3: Manzana, Plátano, Cereza, Dátil.
- i = 3: la elección aleatoria es j = 0. Se intercambian las posiciones 3 y 0 → Dátil, Plátano, Cereza, Manzana
- i = 2: la elección aleatoria es j = 2. Intercambiar una posición consigo misma no cambia nada → Dátil, Plátano, Cereza, Manzana
- i = 1: la elección aleatoria es j = 0. Se intercambian las posiciones 1 y 0 → Plátano, Dátil, Cereza, Manzana
Orden final: Plátano, Dátil, Cereza, Manzana.
Con cuatro elementos hay 4! = 24 órdenes posibles. Cada uno, incluido este, tiene una probabilidad de 1 entre 24 de aparecer en cualquier barajado.
¿Por qué no intercambiar simplemente pares aleatorios?
Un método de apariencia más sencilla, que consiste en elegir dos posiciones al azar e intercambiarlas, repitiendo el proceso varias veces, parece aleatorio, pero no lo es. Algunos de los primeros programas informáticos para barajar funcionaban así y favorecían sin que se notara ciertos órdenes sobre otros, aunque ninguna ejecución por separado resultara sospechosa. El algoritmo de Fisher–Yates evita este problema porque cada elemento se mueve exactamente una vez, a una posición elegida entre un conjunto de opciones que se reduce de forma precisa, y eso es lo que hace que todos los órdenes finales sean igual de probables.
¿De dónde proviene el barajado de Fisher-Yates?
Los estadísticos Ronald Fisher y Frank Yates describieron el método en 1938 en un libro de tablas estadísticas, para barajar a mano al diseñar experimentos. En 1964, Richard Durstenfeld lo adaptó a los ordenadores para que una lista pudiera reordenarse en el mismo lugar, sin necesidad de una segunda lista que registrara lo que quedaba. Donald Knuth incluyó esta versión informática en su libro de 1969 The Art of Computer Programming, por lo que a veces se llama algoritmo de Knuth.
Usos habituales de una herramienta para barajar listas
- Establecer el orden en que los estudiantes presentan trabajos o responden preguntas en clase
- Sembrar un cuadro de torneo o establecer el orden de los turnos en un juego
- Dividir un grupo en equipos aleatorios
- Elegir un restaurante, una película o una tarea de una lista breve sin favorecer ninguna opción
Una mezcla simple no siempre es la opción adecuada. Si algunos elementos deben aparecer con más frecuencia que otros, la selección ponderada se ajusta mejor. Si es necesario garantizar la representación de cada categoría, el muestreo estratificado funciona mejor que una sola mezcla aleatoria.
Preguntas frecuentes
¿Es la mezcla realmente aleatoria?
Se basa en el generador de números pseudoaleatorios (PRNG) del navegador web, una fórmula que produce secuencias de números que se comportan como aleatorios a efectos prácticos. Eso basta para ordenar a una clase, sortear los emparejamientos de un torneo o elegir una película. No está diseñado para criptografía, sistemas de apuestas ni nada en que el dinero o la seguridad dependan de la imprevisibilidad; para eso se necesitan generadores de números aleatorios certificados.
¿Envía la herramienta mi lista a un servidor?
La mezcla se ejecuta por completo en el navegador mediante JavaScript, por lo que no se necesita ninguna solicitud de red para reordenar la lista. La lista actual también se escribe en la dirección web de la página, de modo que una recarga o un marcador no la hará desaparecer. Si se copia, comparte o vuelve a abrir esa dirección, la lista viaja con ella, incluso hasta el servidor que cargue posteriormente esa página. Si esto resulta relevante, evite incluir información confidencial en la lista.
¿Qué ocurre con los elementos duplicados?
Los duplicados se conservan. Si «Sam» aparece dos veces en la entrada, seguirá apareciendo dos veces en la salida mezclada, posiblemente en posiciones diferentes.
¿Hay un límite para la cantidad de elementos que puedo mezclar?
La herramienta no tiene ningún límite incorporado. Como la mezcla se ejecuta en tiempo lineal, incluso las listas largas se reordenan en una fracción de segundo en cualquier dispositivo moderno.
¿En qué se diferencia mezclar de ordenar?
Ordenar organiza los elementos según una regla fija, como el orden alfabético, y siempre produce el mismo resultado para la misma entrada. Mezclar organiza los elementos aleatoriamente y produce un orden diferente casi cada vez, incluso con una entrada idéntica.
¿Puedo mezclar la misma lista más de una vez?
Sí. Cada clic en «Aleatorizar lista» vuelve a ejecutar el algoritmo, de forma independiente de cualquier mezcla anterior. Con una lista pequeña, es posible que se repita un orden por azar; con una lista más grande, se vuelve extremadamente improbable.
Referencias
- National Institute of Standards and Technology (Instituto Nacional de Estándares y Tecnología). Dictionary of Algorithms and Data Structures: Fisher-Yates shuffle. NIST DADS, Fisher-Yates shuffle — el algoritmo intercambia cada elemento con un elemento aleatorio del rango restante y se ejecuta en tiempo lineal; Fisher y Yates, 1938; Durstenfeld, 1964.
- MDN Web Docs (Mozilla). Math.random(). MDN, Math.random() — los números pseudoaleatorios del navegador no son seguros desde el punto de vista criptográfico.