Damit die Items aus den unterschiedlichen Kategorien stammen, müssen Sie die Kategorien "in sich" getrennt mischen. Anschließend bauen Sie dann die 5 Teillisten zusammen. Das könnte etwa wie folgt aussiehen:
// Das ganze Mischen machen wir nur einmal
if (!isset($blocks)) {
$categories = array(
array(1,2,3,4,5),
array(6,7,8,9,10),
array(11,12,13,14,15),
array(16,17,18,19,20)
);
$nCat = count($categories);
// Jetzt jedes dieser Teil-Arrays mischen
for ($cat=0; $cat < $nCat; $cat++) {
shuffle($catgories[$cat]);
}
// Jetzt eine Liste erstellen, wobei jeweils ein Item aus einer Teilliste stammt
$blocks = array();
for ($i=0; $i<5; $i++) {
$blocks[$i] = array();
for ($cat=0; $cat < $nCat; $cat++) {
$blocks[$i][] = $categories[$cat][$i];
}
}
registerVariable($blocks);
}
// Und diese dann auf 5 Seiten verteilt anzeigen
$i = loopPage(count($blocks));
question('CC01', $blocks[$i]);