Package lottery is an idiomatic gno.land port of the classic Solidity Lottery contract. Players Enter the current round (one entry per address per round). Once a round has at least two entrants, anyone may DrawWinner: a winner is picked deterministically from the block height (ChainHeight() % len(entrants), over the deterministically-sorted entrant set), recorded in the winners history, and a fresh round is opened.
There is no real randomness on-chain, so "random" selection is derived from the block height — the same source Solidity ports use via block.number.