There is absolutely no way to evaluate how much "good" or "bad luck" a generated number is on the PRNG level
Yes. That's why we need intermediate module.
So, steps will be like this:
1) Game -> Luck Normalizer -> RNG
2) RNG -> Luck Normalizer -> Game
Game will never communicate with RNG directly. It will communicate with Luck Normalizer by providing a map of possible outcomes, every element of map (so, every possible outcome) will contain a map of 'luckyness' for every player of this outcome, i.e. 0.5 for average, 0.1 for very bad luck, 1.0 for ultimate luck. Possible outcomes may also be interpolated to also account for values between defined outcomes.
Luck Normalizer will call RNG, and then normalize its result based on 'possible outcomes' data received from game. It will pick option that is the most fair to most players (but in most cases, especially in early game, event will influence one player much while not influencing other players at all).
Furthermore there is the question: good or bad luck for whom?
It will choose the option that is most fair for most players. Most events will be important for one player while being nearly zero importance for others (because they are too far away).
Bottom line: a luck normalizer is completely impossible.
It's completely possible. And if you'd read my initial post more carefully, you would already understand that normalization will occur between game and RNG
, not in RNG.