Just had a look in the code. The system is complicated, so I didn't understand it fully with the time I invested. If I saw it right, the order of the bouncing, cardio, splits and glutes-sessions seems to be randomly initialised, but stays always in the same order after the initialisation. The practice matches seem to come after max. 4 such events. But there may be a chance, they can randomly come with a low probability already after 2 or 3 other events. I'm not sure about this, as there is also a priority value which may negate the randomisation.
I can state, that I have a different cycle as you:
1) Bouncing
2) Splits training
3) Cardio training
4) Glutes training
5) Practice match
So I think, the event-order of bouncing, cardio, splits and glutes is definitely randomly initialized. Testing the cycles for 4 or 5 weeks, I always got the Practice match on the 5th day of the cycle. But this may be still to few cycles to determine, if there may be a random factor or not.