Saltar al contenido
ES

Sorteo de Nombres

Pega tu lista (un nombre por línea, o separados por comas) y sortea un ganador o baraja a todos en un orden aleatorio.

Pega desde una hoja de cálculo o escríbelos: comas y saltos de línea valen.

El barajado que casi todo el mundo hace mal

Busca cómo barajar una lista y la primera respuesta que sale es ordenarla con una comparación aleatoria: sort(() => Math.random() - 0.5). Es una línea, parece ingenioso y no produce un barajado justo. Un algoritmo de ordenación supone que la comparación que recibe es consistente: que si A va antes que B y B antes que C, entonces A va antes que C. Cara o cruz no es consistente, así que el algoritmo toma decisiones basadas en comparaciones que él mismo ya ha contradicho, y la disposición en la que acaba depende de las tripas del sort. En la práctica algunos órdenes salen varias veces más que otros, y cuáles depende del navegador.

El método correcto es cien años más viejo que el fallo. Fisher-Yates recorre la lista desde la última posición hasta la segunda y, en cada paso, intercambia el elemento actual con uno elegido entre las posiciones hasta él, inclusive. Ese último detalle lo es todo: el rango tiene que encoger según avanzas. Elegir de la lista entera cada vez es el error clásico, y es sutil porque todos los órdenes siguen siendo alcanzables. Solo las probabilidades quedan mal. Baraja tres nombres así y tres de los seis órdenes salen el doble que los otros tres.

Aquí pesa más que en la mayoría de sitios, porque un sorteo de nombres se usa justo cuando la justicia es el objetivo: quién presenta primero, quién se lleva la entrada, quién hace la tarea desagradable. Un barajado que favorece algunas disposiciones en silencio es un sorteo amañado que nadie puede ver. El de aquí es Fisher-Yates con el rango que encoge, y está probado contando cuántas veces aparece cada disposición, una prueba que falla exactamente con el error descrito arriba.

Los nombres se separan por saltos de línea y por comas, así que pegar una columna de una hoja de cálculo y escribirlos a mano funcionan igual. Las líneas vacías y los espacios sobrantes se descartan. Nada de lo que pegas sale de tu navegador: el sorteo ocurre en tu propia máquina, y la lista no se envía ni se guarda en ninguna parte.

Preguntas frecuentes

¿Cómo introduzco los nombres?

Uno por línea, o separados por comas, o una mezcla de ambos. Pega una columna directamente de una hoja de cálculo y funcionará. Las líneas vacías y los espacios de más se ignoran, así que una línea en blanco al final de un pegado no se convierte en un concursante fantasma.

¿Todos tienen la misma probabilidad?

Sí. Todo nombre tiene la misma probabilidad de salir y, al barajar, todo orden posible es igual de probable. Eso no es cierto del barajado que usa la mayoría de sitios. Ver arriba.

¿Puedo sortear más de un ganador?

Baraja la lista entera y coge los primeros. El orden que produce es justo hasta el final, así que los tres primeros de una lista barajada son un sorteo justo de tres ganadores, sin repeticiones por construcción.

¿Los nombres se envían a algún sitio?

No. Todo se ejecuta en tu navegador. La lista no se sube, no se guarda y no es visible para nosotros. Cerrar la pestaña basta para deshacerse de ella.

¿Vale un sorteo en el navegador para un premio real?

El sorteo es justo, pero no es demostrable ante quien no estaba mirando. Eso vale para todo sorteador de navegador, no solo para este. Para un sorteo informal está bien; donde el resultado pueda impugnarse, hazlo en una videollamada con testigos o graba la pantalla.

Otras herramientas