Of course there is, learn man.
Yes this is right, we use the true randomness. I added a Q/A in the front page to discuss it. Here it is:
Question 6: Are you sure the sweepstake is true random and that people can not cheat?
Answer: Yes the sweepstake is true random. This is how it is done: we use a sub-string from the current block hash to compute whether the current block wins the sweepstake. Sub-string in the block hash is true random and there are statistics to show it (and can be easily demonstrated too). The problem is that the current hash can be only computed once the block is generated, and the payment to that block is already determined at that time. To get around this problem, we always pay the current block with standard payout, but if the current block is a winner of the sweepstake, we remember the payout address, and next block we add the difference between sweepstake and standard block payout to the payout and send to the same winning address. This way, the true randomness is guaranteed as whether a block is the winning is determined only after the block is generated, so there's no cheating possible. This ingenious algorithm was first proposed in a coin called Grain, many years ago.