Quote:heatmapWould it include weighted probabilities? If so is that considered fair or even random at all?

The RNG itself? No.

But the game elements will absolutely have weighted probabilities. Look at the Wheel of Fortune Bonus wheel for example. The lowest paying slice hits much more frequently than the top slice. A RNG still determines the result though. There is just many more RNG values mapped to the lower paying prizes.

It's definitely still random. And it's fair to me at least. If all symbols had to have the same probability of hitting, the game mechanics become repetitive and possibly boring.

trtinglomane nailed it: You're conflating two different things, the RNG, which produces results without bias (the very definition of "random"), and the game, which can indeed include weighting.Quote:heatmapIF YOU MADE AN RNG FOR A GAME....Would it include weighted probabilities? If so is that considered fair or even random at all?

Programmers don't "make" RNGs for games. They use one of about a dozen common algorithms that were coded long ago by other people.

One of my readers asked the age-old question, "How can a slot be random if it's programmed to return, say, 95% to the player?" The thinking is that randomness and a 95% payback are mutually exclusive when it's the opposite: the randomness is what creates the 95% payback.

I use this example: Say you pay a dollar to play a game in which you pick a ball from a bag. There are 95 black balls and 5 white balls. If you pick a black ball, you win a dollar. This is a 95% game. There's a "weighted probability" in that you're much more likely to get a black ball than a white ball, but that doesn't mean that the results aren't random.

https://easy.vegas/games/slots/random

So from what I thought I knew, which was wrong, and what I think a majority of the internet thinks is that a number is generated like so :

generate(min,max,seed){

return RAND(min,max,seed);

}

BUT what we are speaking about is something like this :

generate(min,max,seed){

x = RAND(min,max,seed); // usually this probably wouldnt be "min" or "max" but would generate a number between 0 and 1

if(x<=95){

win

}

if(x<=5){

lose

}

}

Now my concern, if you didnt see this coming is that the second algorithm, is what you are claiming is fair contains a secondary decision making process to ensure probabilities. The first RAND function call is independent. And therefore fair... But whats to stop the algorithm from going a bit further such as this

generate(min,max,seed){

x = RAND(min,max,seed);

if (player==dealer){

if(x=95){

do something else

}

}

}

the third algorithm is still random and fair because it is making the random decision first without the choice of whether or not a specific player is getting the "random" number but after that its game on....?

I'm not following you, at all.Quote:heatmapNow my concern, if you didnt see this coming is that the second algorithm, is what you are claiming is fair contains a secondary decision making process to ensure probabilities. The first RAND function call is independent. And therefore fair... But whats to stop the algorithm from going a bit further such as this

generate(min,max,seed){

x = RAND(min,max,seed);

if (player==dealer){

if(x=95){

do something else

}

}

}

the third algorithm is still random and fair because it is making the random decision first without the choice of whether or not a specific player is getting the "random" number but after that its game on....?

Are you asking if it's possible that the game code, separate from the RNG, isn't fair? Sure. A number of cases have been found with online casinos over the years. The last case I heard with a physical machine was decides ago, but there might be cases I don't know about or my memory could be faulty. The Nevada Gaming Commission has its own lab and examines the source code of the games. I don't know if they look at every single game before it's approved, and it's possible they could miss something.

To have a cheating game with a proper RNG the code could do something like this:

if currentReturnToPlayer > 90% {

put false into losingNumberDrawn

repeat until losingNumberDrawn {

x = drawArandomNumber()

if x = losing then put true into losingNumberDrawn

}

}

With that pseudocode, when the player has been getting a return greater than 90%, the program keeps picking truly random numbers until a losing number is drawn.

I know they look at source code in theory, but from the standards that I am reading the gaming commission for any jurisdiction can decide whether or not to implement such regulations that ban that sort of thing. From what I understand, the secondary decision making process (the discarding of results) is mostly dealing with the scaling process of the RNG. But thats as far as I will go because I have no clue about that process or how it is implemented in any way.

"Internet Random Number Generator Requirements"

https://web.archive.org/web/20070127052716/http://www.bmm.com:80/assets/industry_standards/pdf/I0101.PDF

And what is the question, do we need to create or hack a generator?

(ii) There ARE compensated fruit machines in the UK. These tend to give fewer prizes when the machine has been paying out and more prizes when it hasn't. Typically these machines are in pubs for lower prizes (e.g. max £100). The ones in casinos, I think, have to be totally random. This topic was covered in the slot machines part of https://wizardofodds.com/blog/gambling-united-kingdom/ .