RNG, Hearthstone, and the simulator

The other day I was speaking with a friend and when I mentioned Hearthstone he immediately said “I don’t like Hearthstone very much because there is too much RNG”.

RNG, which stands for “Random Number Generation”, is defined by Hearthstone Wiki as “the unpredictable outcome of a situation featuring a significantly randomized element”. In other words, the more RNG there is, the more possibility that your win or loss was a result of random odds as opposed to purposeful strategy and good deck construction. Chess would be an example of a game with zero RNG since it’s completely non-random, and a slot machine would be an example of a game that is nearly 100% RNG. All card games that involve shuffling have RNG to a certain extent.

I would agree that there is a major element of randomness in Hearthstone. After all, every game you start with a hand that is random drawn from your 30-card deck, and many card effects have a major random element. For example, Arcane Missles, which deals 3 damage randomly split among characters. Or one of my favorite cards, Ragnaros the Firelord, which deals 8 damage to a random player or minion.

Surely, there are things which offset the randomness of the game, such as the redraw system, and a strategic player who calculates correctly can make choices where the outcome of random effects is most likely to benefit them – for example killing off certain minions and letting random effects take down the remaining ones.

Having said that, I would argue that the result of a single game between two decks in Hearthstone doesn’t say too much about either the strength of the decks or the ability of the players. I actually think in this case the number of turns before the game ended more accurately predicts how close the decks are in strength. The more turns the loser managed to stay alive, the closer the decks are.

The realization that Hearthstone contains a good amount of RNG is another thing that motivated me to create Deck Simulator for Hearthstone. Surely playing a handful of matches with a real opponent gives you some idea of the strengths of each deck and player, but what if you could to run 100, even 1000 games in a matter of seconds or minutes?

That is exactly what the simulator allows, and even if the AI players are not exactly ‘ideal’ in terms of playing the perfect move in all situations, as long as they play reasonably good moves the win/loss ratio between two decks should give a good indication of which deck is stronger.

As I mentioned in the last post, the number of games played between each to pairings during a simulation is determined by the “Matches per pairing” slider, which defaults to 20. The reason I set 20 as the default is I felt it was the lowest value that gave some a good estimate of the relative deck strengths. Any less than that and RNG takes over and the result isn’t too statistically meaningful.

The maximum matches per pairing which permitted in the simulator is 1000, which should give a very accurate idea of deck’s relative strengths. However, depending on the  AI players you have chosen and the speed of your device, this could take quite some time (an hour or more).

Therefore, effective use of the simulator requires picking a good number of matches per pairing. Here are my general recommendations:


20: Use this if you want a very, very rough estimation of the decks’ strengths

100: Use this for a rough estimate that carries more weight

200-300: A good middle ground for simulation accuracy vs wait time. This is the most you’ll need for most situations.

1000: Only needed when you really want to be sure the relative strengths of decks, such as when you decide to craft new cards to make a new deck or improve an old one. I recommend limiting the number of participants to 2 only a small handful to avoid long simulation wait times.


While there are several different ways to measure statistical reliability and I may add some of these in upcoming releases, there is a very simple way to check how accurate your results are. Do a full simulation run then take a screenshot to capture the top of the results table. Then re-run the simulation (via the green “Restart simulation” button on the top right part of the simulation screen) and take another snapshot. You can do the same thing again two or three more times if you like.

Then compare the results of each simulation run. The less number of matches you use, the more variation you will see between simulation results. If you see one run where a certain deck is #1 (highest on the results list) and another where it is #5, you know you need to increase your number of runs and try again. You should aim for a number of matches where the general ranking and order is mostly consistent, but the win ratios can be a few percentages different between simulation runs.

I’m curious to hear about your experiences using the simulator and what sorts of parameters and simulation types you’re using, so please feel free to comment to this post!

(Just for the record, I don’t think Hearthstone has too much RNG, but rather a reasonable amount of it given it is a card game)




(Featured image of Hearthstone card “Ragnaros the Fireload”, taken from Hearthstone wiki (http://hearthstone.gamepedia.com/Ragnaros_the_Firelord) but is trademarked and copyrighted by Blizzard Entertainment)


4 thoughts on “RNG, Hearthstone, and the simulator

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s