Nun, soweit ich sehe, haben Sie im Prinzip die Blockrandomisierung mit $grkey
schon vorgesehen. Das können Sie natürlich einfach so machen.
Aber wenn ich korrekt zwischen den Zeilen lese, hätten sie gerne statt der uneingeschränkten Zufallsauswahl einen Zufallsgenerator verwendet, um die experimentellen Ausprägungen über die Zeit auch gleichmäßig zu verteilen.
So ganz trivial ist das nicht, aber machbar. Sie brauchen folgende Bausteine:
1) Der Zufallsgenerator liefert nach jeder Ziehung einen Wert, wie häufig er schon geleert wurde - wie oft jeder Code also schon gezogen wurde. Da interessiert uns, wenn die 20 und 40 überschritten wurde. Diesen Wert können Sie nach der Ziehung in die Datenbank für Inhalte schreiben.
2) Mit dem show()
-Befehl kann man den Zufallsgenerator einbinden und dabei per 'filter'
einschränken, welche Codes gezogen werden dürfen. Wenn die 20 übeschritten wurde, dann ziehen Sie nur noch aus [1,3,4,5] und wenn die 40 überschritten wurde, dann nur noch aus [1,4,5].
Das Ganze dann natürlich noch in einem IF-Konstrukt, welches je nach Block einen anderen Datenbankeintrag prüft und aus einem anderen Zufallsgenerator zieht.