Ich habe es eben mit diesem Code versucht, es wurden aber insgesamt 26 Videos angezeigt und anstatt jeweils 7 Videos pro Kategorie gab es eine Kategorie mit 17 Videos, die gezeigt wurden und bei den anderen jeweils 3 Videos.
// Array mit den Zahlen 1 bis 21 in zufälliger Reihenfolge
$video = range(1, 15);
shuffle($video);
// Array mit 7 mal 1 und 7 mal 2 und 7 mal 3 in zufälliger Reihenfolge
$version = array_merge(array_fill(0, 7, 1), array_fill(0, 7, 2), array_fill(0, 7, 3));
shuffle($version);
// 2D Array mit den Zettel (je Video- und Entscheidungszettel) (in den Spalten je mit Audio, Text und Audio+Text)
$zettelArray = [
1 => [1 => 'VAT01-EAT01', 2 => 'VT01-ET01', 3=> 'VA01-EA01'],
2 => [1 => 'VAT02-EAT02', 2 => 'VT02-ET02', 3=> 'VA02-EA02'],
3 => [1 => 'VAT03-EAT03', 2 => 'VT03-ET03', 3=> 'VA03-EA03'],
4 => [1 => 'VAT04-EAT04', 2 => 'VT04-ET04', 3=> 'VA04-EA04'],
5 => [1 => 'VAT05-EAT05', 2 => 'VT05-ET05', 3=> 'VA05-EA05'],
6 => [1 => 'VAT06-EAT06', 2 => 'VT06-ET06', 3=> 'VA06-EA06'],
7 => [1 => 'VAT07-EAT07', 2 => 'VT07-ET07', 3=> 'VA07-EA07'],
8 => [1 => 'VAT08-EAT08', 2 => 'VT08-ET08', 3=> 'VA08-EA08'],
9 => [1 => 'VAT09-EAT09', 2 => 'VT09-ET09', 3=> 'VA09-EA09'],
10 => [1 => 'VAT10-EAT10', 2 => 'VT10-ET10', 3=> 'VA10-EA10'],
11 => [1 => 'VAT11-EAT11', 2 => 'VT11-ET11', 3=> 'VA11-EA11'],
12 => [1 => 'VAT12-EAT12', 2 => 'VT12-ET12', 3=> 'VA12-EA12'],
13 => [1 => 'VAT13-EAT13', 2 => 'VT13-ET13', 3=> 'VA13-EA13'],
14 => [1 => 'VAT14-EAT14', 2 => 'VT14-ET14', 3=> 'VA14-EA14'],
15 => [1 => 'VAT15-EAT15', 2 => 'VT15-ET15', 3=> 'VA15-EA15']
];
// Die Reihenfolge wird erstellt, $video gibt an welches Video, $version die Version
$reihenfolge = [];
for ($i = 0; $i < count($video); $i++) {
$reihenfolge[] = $zettelArray[$video[$i]][$version[$i]];
};
setPageOrder($reihenfolge, 'Prima');