Barajar opciones de quiz con semilla
Baraje las respuestas de una pregunta con un número semilla y obtenga siempre el mismo orden: París, Londres, Berlín y Madrid con la semilla 7 pasan a Berlín, Londres, Madrid y París, y se le indica que la correcta queda la última. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Opciones
- Paris, London, Berlin, Madrid
- Índice correcto
- 0
- Semilla
- 7
- Opciones
- Berlin, London, Madrid, Paris
- Índice correcto
- 3
- Índice correcto original
- 0
- Número de opciones
- 4
Los cuestionarios de opción múltiple necesitan un orden de opciones equitativo sin perder la clave. Si cada alumno ve siempre la respuesta correcta en primer lugar, las puntuaciones se inflan; si se baraja con aleatoriedad no reproducible, no se puede recalificar, hacer pruebas A/B ni depurar un ítem concreto. Este barajado de opción múltiple con semilla recibe las opciones de respuesta, el índice de la correcta y una semilla entera, y devuelve una lista reordenada de forma determinista junto con el nuevo índice correcto. El mismo triple de entradas produce siempre el mismo orden, de modo que formularios de examen, exportaciones de LMS y paquetes móviles sin conexión permanecen estables bit a bit.
Por qué importa el barajado con semilla en cuestionarios y evaluaciones
Los cuestionarios de aula y de producto suelen redactar las opciones en un orden canónico —respuesta correcta primero, o según la secuencia del temario— y después necesitan un orden de presentación que no filtre la clave. Un barajado puramente aleatorio en el momento del render rompe la reproducibilidad: dos correctores que abren el mismo intento ven posiciones distintas, las capturas de pantalla ya no coinciden con los registros y las impresiones en papel no se pueden regenerar tras reiniciar el servidor.
Sembrar el barajado con un entero estable —hash del identificador del alumno, número de variante del formulario, contador de intentos o una semilla fija de aula— ofrece variedad controlada y un mapeo fijo que usted puede recomputar más adelante. Use una semilla por variante de formulario o por alumno si desea órdenes independientes; reutilice la misma semilla cuando necesite cuadernillos idénticos en distintos dispositivos.
Dónde un barajado de opciones con semilla aporta valor real
Los sistemas de gestión del aprendizaje invocan un barajado de respuestas de cuestionario con semilla al exportar formularios para que cada sección obtenga un orden de opciones distinto sin reescribir el banco de ítems. Las herramientas de integridad de exámenes rotan el orden de los distractores por puesto y conservan una pista de auditoría: dada la semilla y la clave original, cualquier auditor puede recomputar el orden presentado. La validación fallida no consume saldo.
Mantenga listas de opciones cortas, fije goldens para sus semillas críticas y obtendrá una presentación de opción múltiple reproducible para plugins de LMS, generadores de deberes y edge workers sin montar un servicio de barajado propio.
Qué puede hacer con ella
Variantes de formulario en LMS
Exporte un mismo banco de ítems a varios formularios de examen sembrando cada identificador de formulario para que el orden de opciones difiera y el índice correcto quede rastreado para la autoevaluación.
Orden de presentación por alumno
Convierta el identificador del alumno en semilla y baraje las opciones para que cada estudiante vea un orden distinto sin cambiar la clave subyacente de la pregunta.
Preguntas frecuentes
¿Cuántas opciones puedo enviar?
Entre 2 y 50 inclusive. Menos de dos no es un conjunto de opción múltiple; más de cincuenta se rechaza para acotar el contrato.
¿Por qué barajar las respuestas con semilla y no al azar?
Porque un orden con semilla se puede reconstruir después. Dos correctores que abren el mismo intento ven las respuestas en las mismas posiciones, los cuadernillos impresos se pueden regenerar y cualquier pregunta se revisa sin adivinar qué vio el estudiante.
¿Cómo doy a cada estudiante un orden distinto?
Use una semilla diferente para cada estudiante o para cada versión del examen, y cada uno tendrá su propio orden. Repita la misma semilla cuando necesite cuadernillos idénticos en papel y en todos los dispositivos.
¿Cómo sé dónde quedó la respuesta correcta?
El resultado le da la lista barajada junto con la nueva posición de la respuesta correcta, de modo que la corrección automática sigue funcionando. En el ejemplo, París empieza primera y termina en el último de los cuatro lugares.
¿Añade las letras A, B, C y D?
No. Solo cambia el orden de los textos de respuesta y sigue la pista de la correcta. Si su examen muestra letras junto a las respuestas, añádalas en su propio diseño después de barajar.
Herramientas relacionadas
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/edu/multiple-choice-shuffle-seeded \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"choices":["Paris","London","Berlin","Madrid"],"correct_index":0,"seed":42}'const res = await fetch("https://api.kit.forhosting.com/edu/multiple-choice-shuffle-seeded", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"choices": [
"Paris",
"London",
"Berlin",
"Madrid"
],
"correct_index": 0,
"seed": 42
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/multiple-choice-shuffle-seeded",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"choices": [
"Paris",
"London",
"Berlin",
"Madrid"
],
"correct_index": 0,
"seed": 42
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/multiple-choice-shuffle-seeded", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"choices":["Paris","London","Berlin","Madrid"],"correct_index":0,"seed":42}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"choices":["Paris","London","Berlin","Madrid"],"correct_index":0,"seed":42}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/multiple-choice-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
{
"choices": [
"Paris",
"London",
"Berlin",
"Madrid"
],
"correct_index": 0,
"seed": 42
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.multiple_choice_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.
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. |
Notas técnicas
Los índices correctos fuera de rango fallan con invalid_input en lugar de apuntar en silencio a la opción equivocada.
Por qué importa el barajado con semilla en cuestionarios y evaluaciones
Este endpoint implementa Fisher–Yates impulsado por un generador mulberry32 inicializado con su semilla, de modo que la permutación queda totalmente determinada por la longitud de las opciones, el orden del contenido, la semilla y el índice correcto original. Usted no necesita rederivar la clave emparejando textos a posteriori: la respuesta incluye el nuevo correct_index junto a las opciones barajadas, que es el contrato que necesitan los autoevaluadores y las interfaces del reproductor. Cuando el índice original está fuera de los límites del array, la tarea falla con invalid_input indicando el rango, porque un índice de clave erróneo es peor que no barajar. También se rechazan listas vacías o de una sola opción para que la API sea honesta sobre qué es un ítem de opción múltiple.
Contrato de entrada, forma de la respuesta y comportamiento ante errores
Los elementos de opción numéricos o booleanos se convierten a cadena; los objetos y los null se rechazan. Combine la respuesta con sus propias etiquetas A–D si la interfaz necesita letras; esta capacidad solo reordena cadenas y rastrea la clave. Mantenga las semillas en el rango de treinta y dos bits con signo que le interese; el PRNG usa la semilla como estado de treinta y dos bits sin signo mientras la respuesta sigue repitiendo el entero que usted proporcionó. Envíe por POST un cuerpo JSON con tres campos obligatorios. choices es un array de al menos dos y como máximo cincuenta cadenas (se aceptan los alias options y answers). correct_index es un entero con base cero que indica qué entrada es correcta en ese orden de autoría (alias answer_index). seed es un entero finito que inicializa el PRNG (alias shuffle_seed). Si correct_index falta, no es entero, es negativo o es mayor o igual que la longitud del array, el manejador lanza invalid_input con un mensaje de fuera de rango —esos fallos no se facturan—. En caso de éxito el cuerpo devuelve choices como el array barajado, correct_index como la nueva posición del mismo texto de respuesta, original_correct_index que repite el índice de entrada, seed que repite el entero que usted envió y choice_count igual a la longitud del array. Ejemplo: choices Paris, London, Berlin, Madrid con correct_index cero y seed cuarenta y dos producen siempre el mismo orden y el mismo índice nuevo para Paris.
Dónde un barajado de opciones con semilla aporta valor real
Los paquetes móviles sin conexión precomputan las permutaciones en el momento de la publicación e incrustan seed más correct_index para que los dispositivos no necesiten una API aleatoria en vivo. Como la implementación es parse pura de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo y sin red saliente.
Casos de integración
Paquetes de cuestionario sin conexión
Precomputar barajados con semilla en la publicación y enviar choices más correct_index para que las aplicaciones móviles califiquen sin conexión con plena auditabilidad.
Preguntas técnicas
¿Cómo barajo respuestas de opción múltiple con una semilla?
Envíe choices (array de cadenas), correct_index (base cero) y seed (entero). La API devuelve las opciones barajadas y el nuevo correct_index de la misma respuesta.
¿Qué ocurre si correct_index está fuera de rango?
La tarea falla con invalid_input. El índice debe cumplir 0 ≤ correct_index < choices.length; las claves incorrectas nunca se reasignan en silencio.
¿El barajado es determinista?
Sí. Las mismas choices, correct_index y seed producen siempre el mismo orden y el mismo índice nuevo. No se usa Math.random ni reloj.
¿Cuánto cuesta el barajado de opciones con semilla?
La herramienta en el navegador es gratuita. Las peticiones API usan saldo prepago de KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.