Generador de equipos aleatorios con semilla y grupos equilibrados
Este generador de equipos aleatorios con semilla convierte una lista de nombres en grupos equilibrados que usted podrá reproducir más adelante.
Ejecutar — gratis
Introduzca las personas, elija cuántos equipos necesita y proporcione cualquier texto como semilla. La misma lista, cantidad de equipos y semilla siempre producen la misma asignación, lo que facilita auditarla, compartirla o repetirla. Cada persona aparece una sola vez, el tamaño de los equipos difiere como máximo en una persona y la solicitud se rechaza si hay más equipos que participantes.
Prepare la lista y elija una semilla útil
Comience con una entrada por cada persona que vaya a participar. Los nombres se conservan exactamente, incluidas mayúsculas y espacios, por lo que usted puede usar nombres visibles, iniciales, identificadores de empleado u otras referencias legibles. Cada entrada debe contener texto que no sea solo espacios. Se admiten entradas repetidas porque dos personas pueden llamarse igual, aunque conviene añadir un identificador cuando la asignación final deba distinguirlas. Después, elija una cantidad de equipos entre uno y el número de nombres proporcionados. La semilla puede ser cualquier texto no vacío, como el nombre de un evento, una fecha acordada por su organización o la etiqueta pública de un sorteo. Una semilla descriptiva permite reproducir el reparto sin guardar estado adicional. Para que el proceso sea imparcial, acuerde o publique la semilla antes de revisar los equipos. Cambiar un solo carácter puede modificar la mezcla; repetir exactamente la entrada produce exactamente el mismo resultado. La herramienta admite hasta diez mil nombres por solicitud y resulta adecuada para clases, talleres, ligas y grandes eventos internos.
Cómo funcionan la mezcla determinista y el equilibrio
El generador convierte la semilla en un estado numérico estable y lo utiliza para dirigir una mezcla determinista de una copia de la lista. No emplea aleatoriedad del sistema, la hora actual, datos de red ni estado de sesiones almacenado. Tras mezclar, reparte los nombres por turnos: el primero va al equipo uno, el siguiente al equipo dos y así sucesivamente, volviendo al primero después del último equipo. Esta regla garantiza que la diferencia entre el grupo mayor y el menor no supere una persona. Cuando la cantidad de nombres no se divide exactamente, los equipos con numeración anterior reciben un integrante adicional. Cada posición de entrada aparece una vez en la salida, de modo que los nombres visibles repetidos siguen siendo registros distintos y no se fusionan sin aviso. Determinismo significa reproducibilidad, no imprevisibilidad criptográfica: quien conozca la entrada completa y la semilla podrá calcular la misma asignación. Si los participantes pudieran influir estratégicamente en una semilla pública, elíjala mediante un procedimiento acordado después de cerrar la lista y conserve ambos elementos junto al resultado.
Repita, compare y automatice las asignaciones
Guarde el orden original de los nombres, la cantidad solicitada de equipos y la semilla siempre que necesite reconstruir una asignación. Los tres datos forman parte del cálculo: reordenar la lista, corregir un nombre, añadir a alguien tarde, retirar a una persona, cambiar la cantidad de equipos o editar la semilla genera otra mezcla. Esa sensibilidad evita que un resultado antiguo parezca válido tras modificar la plantilla, pero también exige tratar la solicitud completa como registro del sorteo. La respuesta devuelve la semilla, la cantidad de equipos y los grupos numerados con sus integrantes, una estructura sencilla de copiar a un calendario o consumir en un flujo automatizado. Use la ejecución en el navegador para una clase o taller ocasional y la API cuando una aplicación necesite agrupaciones repetibles sin mantener su propio código de aleatorización. Cada solicitud de API cuesta $0.002; la ejecución en el navegador está disponible en esta página. La validación detiene pronto solicitudes imposibles o ambiguas, incluidos nombres vacíos, una semilla ausente, una cantidad no entera o más equipos que personas.
Qué puede hacer con ella
Crear grupos para un taller
Publique una semilla de sesión y forme grupos equilibrados que los facilitadores puedan reproducir después.
Asignar equipos de proyecto en clase
Divida una lista de alumnos de forma equilibrada y conserve la lista, la semilla y la asignación exactas.
Automatizar sorteos de eventos periódicos
Genere equipos deterministas desde una aplicación sin almacenar el estado de un generador aleatorio.
Preguntas frecuentes
¿La misma semilla siempre crea los mismos equipos?
Sí, si los nombres conservan el mismo orden y no cambia la cantidad de equipos. Cualquier modificación de esos datos puede alterar el resultado.
¿Con qué equilibrio se distribuyen las personas?
Cada persona se asigna una vez y el equipo más grande tiene, como máximo, un integrante más que el pequeño.
¿Qué ocurre si hay más equipos que nombres?
La solicitud devuelve un error de entrada no válida porque cada equipo solicitado debe recibir al menos una persona.
¿Puede haber dos personas con el mismo nombre?
Sí. Las cadenas repetidas siguen siendo entradas separadas, aunque añadir un identificador ayuda a distinguirlas.
¿Sirve para una lotería con requisitos de seguridad?
No. El algoritmo es reproducible y transparente, pero no está diseñado como sorteo secreto ni criptográficamente seguro.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. También puede ejecutar la capacidad en su navegador desde esta página.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/game/team-shuffle-seeded \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"names":["Amina","Bruno","Chen","Daria","Emil","Fatima","Grace"],"team_count":3,"seed":"summer-games-2026"}'const res = await fetch("https://api.kit.forhosting.com/game/team-shuffle-seeded", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"names": [
"Amina",
"Bruno",
"Chen",
"Daria",
"Emil",
"Fatima",
"Grace"
],
"team_count": 3,
"seed": "summer-games-2026"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/team-shuffle-seeded",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"names": [
"Amina",
"Bruno",
"Chen",
"Daria",
"Emil",
"Fatima",
"Grace"
],
"team_count": 3,
"seed": "summer-games-2026"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/team-shuffle-seeded", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"names":["Amina","Bruno","Chen","Daria","Emil","Fatima","Grace"],"team_count":3,"seed":"summer-games-2026"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"names":["Amina","Bruno","Chen","Daria","Emil","Fatima","Grace"],"team_count":3,"seed":"summer-games-2026"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/team-shuffle-seeded", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"names": [
"Amina",
"Bruno",
"Chen",
"Daria",
"Emil",
"Fatima",
"Grace"
],
"team_count": 3,
"seed": "summer-games-2026"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.team_shuffle_seeded",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_items | 10000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |