The rules
A double-six set is 28 tiles. You and the computer draw seven each and the remaining fourteen become the boneyard. The highest double leads โ or the heaviest tile, if neither player holds a double. After that, each turn you lay a tile whose number matches one of the two open ends. If you cannot match either end you draw from the boneyard until you can, and you only pass once it is empty.
The hand ends when somebody plays their last tile, or when nobody can move at all โ a block. On a block the lighter hand wins. Either way the winner scores the pips left in the loser's hand, which is why shedding your heavy tiles early matters more than it looks.
Why the shuffle is the whole point
Every dominoes app on every store carries the same review: the deal is rigged, the computer always draws what it needs. The standard reply is that the shuffle is random โ which asks you to take it on faith, and faith is exactly what is missing.
So here the shuffle is a pure function of two seeds. Before the hand we publish a SHA-256 hash of ours; you contribute one of your own. Neither of us can change a tile after the fact, because the hash is already fixed and your seed is mixed in. When the hand ends we reveal our seed: check it against the hash, then reproduce the deal tile by tile on the verification page. The shuffle uses rejection sampling rather than a modulo shortcut, so the permutation is genuinely uniform โ tested over three thousand deals.
Why you cannot play a friend yet
Worth being straight about. In our dice games the host generates the rolls and publishes the seed at the end, which is safe because dice are public โ everyone sees the same number. A dominoes deal is different: whoever holds the seed can work out the other player's hand. Doing it properly means the cryptography online card rooms use, where neither side can read the deck and both can verify it afterwards. Until that is built, dominoes here is against the computer, because a room where one player can peek is worse than no room at all.