Another good reason for having random selectors is to reduce transaction conflicts when returned nodes might be used by parallel threads for mutations.
In my scenario, random nodes are games opened by single players (creators). Opponent players try to pick a random game to play with game creators. But if 2 opponent pick the same game, one will be rejected thanks to a transaction conflict.
If MANY players play together, I get LOTS of transaction conflicts, because all opponents try to get the same open game, then all but one fail and finally they all try to get the same other open game, and so on.