Has this mechanism for selecting validators been proposed and/or implemented in any distributed ledgers?
Validators pre-commit hash chains of length w. When creating a block, validators commit the pre-image to the current hash in their hash chain, and combines it with the random number Selector, hash(x) ⊕ Selector. This random number selects the next validator.
If this is off-topic from this stackexchange, there are not that many forums on these types of topics. This was the best one I could think of.