For provable fairness onchain, i have been stumbling upon solutions like this one from Chainlink:
https://docs.chain.link/vrfVerifiable Random Function is used by quite a few smaller onchain platforms in the meanwhile, think this is something to take a look at, especially taking into account the reputation Chainlink has build for themselves.
The biggest oracle competitor, Pyth, has been developing a similar solution, Entropy, but i have not heard of projects using it yet
https://pyth.network/blog/pyth-entropy-random-number-generation-for-blockchain-apps