Very interesting read and thanks for sharing it! It does seem like this problem has been well thought out by a lot of people. I cannot help but notice however all the solutions on that page require both parties ("Alice" and "Bob") to both conduct encryption, which may require extra overheard for the player. With the idea above, the server "Bob" would be the only one encrypting, and Alice the only one shuffling the encrypted keys.
Perhaps I'm missing something as to why the extra complexity on that page is needed when we could do the modulus % 52 of the private key method and then let the player shuffle the public keys. I'm sure I'm missing something simple as to why this method isn't used.
Whatever method is used, I cannot help but see this as a fantastic solution to maintain trustlessness for gambling-related RNG in a centralized environment, and only interact with the blockchain when resolving the actual bets?