Preface
I am new to learning Solidity and about smart contracts in general. I think that asking here would save me time rather than trying to fully figure things out myself.
Scenario
Suppose that I would like to implement a two player game with a smart contract such as rock paper scissors. I would like to have a random matchmaking algorithm which pairs players who are queued to play. Once players are paired, they are both entered into a smart contract. I understand that randomness is not possible within Solidity, so I think that the matchmaking will have to be done offchain. What are some different frameworks for making this system?
Edit: Rock paper scissors was probably not the best example game for my scenario. The aim of the random matchmaking is to make it impossible to reliably queue into yourself or a collaborator. This would be important for a game like poker, where queuing into yourself or your friend can result in unfair collusion.