I implemented the change!
I didn't read your comment before working on it, but I ended up loosely implementing the first option.
That second version of yours could loop for very long with bad luck (which I have) and as such can cause performance drops at literal random
What I did is:
> Make a list copy of the minigame pool
> Remove the last minigame from the copy pool (only if there is more than 1 item in it, otherwise we're picking from an empty list)
> Pick from the copy pool
This will be in by the next update!