It's answered in the question you linked, but..
We only generate safe-ish randomness in babe, not grandpa. We might add better randomness generation to grandpa in the future if we first optimized https://github.com/kobigurk/aggregatable-dkg better, just no critical use cases right now.
Regardless, there is no way any blockchain can simultaneously close participants in a lottery and pick the winner, even if you generate good fresh threshold randomness in finality then you could only use the randomness after finality and worse adversaries could fork the chain so events finalize differently. You always need multi-block actions like waiting periods or commit-reveal, even an instant finality chain only provides the randomness in the next block.
All block producers learn their babe VRFs like two babe epochs in advance, and sassafras shall likely makes this three epochs, so several hours. If you've very low value operations then you could ignore the problem and use them directly, but otherwise you should either commit to participation far enough in advance for the epoch based one, aka close the lottery and wait for epoch randomness, which remains biasable, but much less so. There exist other tricks too..
We'll add cumulative VRF randomness in sassafras, but this actually makes high value lotteries worse.