Ich glaube Zufallsgenerator oder Randomisierung bringt mir nichts, weil ich dann ja die Paare nicht zusammenbekomme.
Wenn Sie die Item-Paare nicht in zwei fixe Listen aufteilen möchten, sondern für jeden Teilnehmer neu ziehen möchten, dann können Sie auch mit dem Zufallsgenerator arbeiten. Sie müssen dann für jeden gezogenen Wert einfach 2 Items anzeigen.
Nehmen wir mal an, Sie haben eine Frage mit 50 Items - 25 Paare. Und Sie ziehen 12 Codes im Bereich 1 bis 25. Dann würde der folgende Code 12-mal 2 aufeinanderfolgende Items anzeigen. Deren Reihenfolge könnte man natürlich noch mischen.
$pairs = valueList('RG01'); // Erstmal die gezogenen Codes aus dem Zufallsgenerator holen
$items = array();
foreach ($pairs as $pair) {
$items[] = ($pair - 1) * 2 + 1; // 1 => 1, 2 => 3, 3 => 5, u.s.w.
$items[] = ($pair - 1) * 2 + 2; // 1 => 2, 2 => 4, 3 => 6, u.s.w.
}
shuffle($items);
question('AB01', $items);
Ebenso könnten Sie natürlich erst die 25 ersten Items und dann die 25 anderen Items in die Frage legen, dann wird die Formel noch einfacher.
$items[] = $pair; // 1 => 1, 2 => 2, 3 => 3, u.s.w.
$items[] = $pair + 25; // 1 => 26, 2 => 27, 3 => 28, u.s.w.
Es kommt maßgeblich auf Ihre Methode und die geplante Datenanalyse an, ob dieses Vorgehen das bessere ist oder ob Sie besser 2 fixe Decks bilden und entweder das eine oder das andere anzeigen. Wenn sich sich für letzteres entscheiden, hätten Sie nur 2 Zettel im Zufallsgenerator und der Code wäre recht langweilig:
if (value('RG01') == 1) {
question('AB01', '1-24');
} else {
question('AB01', '25-48');
}
Hier werden entweder die Items 1-24 oder die Items 25-48 angezeigt. Langweilig ;)