Wenn es möglich ist die 12 Töne auch innerhalb der drei Durchgangsblöcke zu variieren wäre das toll!
Anders formuliert: Die haben 12 Töne/Tonfolgen (Stimuli) und möchten diese auf 12 Seiten verteilen. Und alle 4 Seiten kommt eine Zwischenseite. Ist das soweit korrekt?
Am einfachsten wäre das zu realisieren, wenn Sie tatsächlich 12+3 Seiten anlegen, diesen Seiten Kennungen geben und dann eine Liste (Array) mit den 12 Seitenkennungen erstellen und mischen. Dann haben Sie die 12 Seiten in zufälliger Abfolge. Zuletzt noch in 3 Blöcke teilen und die Zwischenseiten einfügen.
Nehmen wir einmal an, die 12 Seiten haben die Kennung ton1 bis ton12 und die Zwischenseiten heißen info1 bis info3:
if (!isset($seiten)) {
  // Liste der Stimulus-Seiten
  $tonSeiten = array('ton1', 'ton2', 'ton3', ..., 'ton12');
  // Mischen
  shuffle($tonSeiten);
  // In 3 Blöcke á 4 Seiten aufteilen
  $blocks = array_chunk($tonSeiten, 4);
  // Eine Gesamtliste alle Seiten mit Zwischenseiten erstellen
  $seiten = array_merge(
    array('info1'),
    $blocks[0],
    array('info2'),
    $blocks[1]
    array('info3'),
    $blocks[2]
  );
}
setPageOrder($seiten);
as Ganze kommt als PHP-Code auf die Seite vor info1.