Processes are each assigned some number of lottery tickets, and the scheduler draws a random ticket to select the next process.
The distribution of tickets need not be uniform; granting a process more tickets provides it a relative higher chance of selection.
Lottery scheduling solves the problem of starvation.
Giving each process at least one lottery ticket guarantees that it has non-zero probability of being selected at each scheduling operation.
Implementations of lottery scheduling should take into consideration that there could be billions of tickets distributed among a large pool of threads.