There is one other explanations for the results of those experiments.

In a real world, it’s quite uncommon that somebody tells you exact probabilities—no you need to infer them from the situation around you. And we the people, we pretty much suck at assigning numeric values to probabilities. When I say 99%, it probably means something like 90%. When I say 90%, I’d guess 70% corresponds to that.

But that doesn’t mean that people behave irrationally. If you view the proposed scenarios through the described lens, it’s more like:

a) Certainty of million or ~60% chance on getting 5 millions.

b) Slightly higher probability of getting a million but the difference is much smaller than the actual error in the estimation of probabilities themselves.

With this in mind, the actual behaviour of people makes much more sense.

True, but that’s usually very artificial context. Often when someone claims they know the probabilities accurately enough, they are mistaken or lying.