Previously, random selection would always be done at a *set* level. The
final operation of a random action would be "select the user's
recommended difficulty from this randomly selected set".
This makes no sense when sets are not grouped together at song select.
In fact, it is completely broken with the previous commit which adds
group-isolated random support – if we're grouping by difficulty and the
user's recommendation is not in the current group it would throw the
user into another group unexpectedly.
This fixes the issue by splitting out the random implementation into two
separate pathways depending on the carousel display mode.
While I can't reproduce any test failures because of this, I can
reproduce exceptions by simply running the tests with debugger attached.
There's one other similar related test failure in `TestSingleAudioFile`
but that appears to be an o!f issue.
What the actual heck is that magic number stupidity.
I'm not looking into why the test falls over so badly that it apparently
dies on some main menu logic just because assertions fail, because the
main menu logic is for hold-to-song-select-v2 and is thus temporary.
As proposed in https://github.com/ppy/osu/discussions/33572.
Note that this won't work if you leave to song select. We could make
that work but it would require further global faffing and I don't think
it's worth the effort.