Die Lösung funktioniert ähnlich, wie hier für Seiten beschrieben:
Rotation und Mischen von Blöcken
Legen Sie zunächst ein Array an, welche die Blöcke definiert - hier dann nur Item-Nummern.
$blocks = array(
array(1,2,3),
array(4,5,6),
array(7,8,9),
array(10,11,12)
);
Dann mischen Sie jeden Block
for ($i=0; $i<count($blocks); $i++) {
shuffle($blocks[$i]);
}
Und dann nochmal die Blöcke
shuffle($blocks);
Zuletzte "ebnen" Sie das verschachtelte Array.
$items = array();
for ($i=0; $i<$blocks.length; $i++) {
$items = array_merge($items, $blocks[$i]);
}
... und verwenden diese Itemliste für Ihre Frage:
question('AB01', $items);