How are you providing a probably fair system in lottery? Ignore the fact that I have visited your site and explain it here.
Btw it would be better if you integrate random.org's Quick Pick feature rather than blockchain's hash in order to get variable and more random outcomes.
The lottery is provably fair, meaning that you have access to the random number, which is used for the drawing, and you can recompute the drawing yourself if you want to verify it.
The algorithm to pick the winner is as following:
var jackpot = CalculateCurrentJackpot(currentTransactionInGame);
var randomNum = hash.Substring(hash.Length - 16);
var ranseed = HexLiteral2Long(randomNum) % jackpot + 1;
long isWinnerCpt = 0;
var orderedTrans = currentTransactionInGame.OrderBy(x => x.PlayerAddress);
foreach (var ct in orderedTrans)
{
isWinnerCpt += ct.ValueGame;
if (isWinnerCpt >= ranseed)
{
return ct;
}
}
If we were using random.org, how would you make sure that we are not cheating you? What would prevent me to play one game a day, and win all the drawings? With the block hash, I use a number, which is easy to access.
With respect to randomness, we already discussed the point in this thread. The only problem is if the pot is higher than the block reward. As soon as it happens, we'll introduce a secret seed, that will be revealed on a regular basis, in order to be sure that a miner would not have any incentive ignoring a block.