In the function 'selectRamIfNotSelected' in the contract 'ChoosingRam', the organizer can know which will be the selected ram before calling the function.
In the function 'selectRamIfNotSelected' in the contract 'ChoosingRam', the organizer can know which will be the selected ram before calling the function because of a bad randomness, in fact a random value is generated by encoding the values: 'block.timestamp' and 'block.prevrandao'.
##PoC
Organizer will have the advantage to know which will be the selected ram, so there is an high centralization risk.
Manual Review
Do not encode block.timestamp and block.prevrandao, simply use Chainlink VRF.
The organizer is trusted, but the function `ChoosingRam::selectRamIfNotSelected` uses a way to generate a random number that is not completely random.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.