This is simply a hash commitment by the Casino and this is not a pre-image problem.
Before all of the games start, the casino chooses a $seed$ and hash it $2M$ times. let $H^{s}(m)$ represents hashing $m$ $s$-time in cascading
$$H^{s}(m) = \underbrace{H(H(\ldots (H(m) ))}_{s-times}$$
The 1st game starts with $H^{2000000}(seed)$
When the 2nd game starts with $H^{1999999}(seed)$ and they say this;
- look we are not using a random seeded game, we are on our commitment. Check this by hashing this game hash and seeing that the result is the previous game's hash.
$$H^{2000000}(seed) = H(H^{1999999}(seed))$$ or generic for the $i$th game ( omitting $2000000-i+1$ for the clarity);
$$H^{i}(seed) = H(H^{i-1}(seed))$$
Therefore, they may convince some gamblers but not the real cryptographers since the initial seed selection is not based on true randomness under a Notary.
They can simply search for a seed that always favors the casino, instead of relying on the expected uniform randomness of cryptographic hashes. The uniform randomness simply tells us that there are 2M cascading hashes that the casino will always lose. They simply will eliminate those cases.
The users cannot find the hashes of unplayed games since SHA-256 has a pre-image resistance of cost around $2^{256}$. They can only verify that the commitment is ongoing.
The main reason casinos use these hash commitments is to assure the player that when they play, their actions have no impact on their probability of winning. In particular the variation of the stake.
They assure you that when you open the game, you are assigned a 2M sequence of multipliers, and that your computer checks after each spin to make sure they still live up to their pledge.
This way, if after 100 bets at $ 5 you decide to lower the bet to 25 cents, and on the first try you get a huge multiplier, at least you know they didn't do it on purpose!