How many of these groups do you have?
Does your
"etc." mean
Group3a
Group3b
Group3c
Group4a
Group4b
Group4c
etc.
So in each group there are three variations?
And something like random assignment of variations
Group1a
Group2c
Group3b
Group4b
Group5a
is allowed?
Or do you want to force the a,b,c,a,b,c order like
Group1a
Group2b
Group3c
Group4a
Group5b
...
or
Group1b
Group2c
Group3a
Group4b
Group5c
...
If you prefer the second it is rather easy because there are only 3 different ways to display.
So create a random number (1-3)
and display
Group1a: randomnumber==1
Group1b: randomnumber==2
Group1c: randomnumber=

Group2a: randomnumber=

Group2b: randomnumber==1
Group2c: randomnumber==2
Group3a: randomnumber==2
Group3b: randomnumber=

Group3c: randomnumber==1
Group4a: randomnumber==1
Group4b: randomnumber==2
Group4c: randomnumber=

Group5a: randomnumber=

Group5b: randomnumber==1
Group5c: randomnumber==2
...
The first option is similar though you have a higher number of possible rotations
Calculate them (IMO a subset is sufficient, maybe ten different rotations, but depends on the number of groups)
and display similar (only an example)
Group1a: randomnumber==1 or randomnumber==4 or randomnumber==9 or...
Group1b: randomnumber==2 or randomnumber==6 or randomnumber==8
Group1c: randomnumber=

or randomnumber==5 or randomnumber==7
...
Joffm