Actually those results are fairly typical, and make absolute sense given the standard deviation. In this case, it's a million coinflips, which has a standard deviation of 500. So all of those results are within 2 deviations from the mean, where 95% of all trials will fall.
In other words, you could run this experiment 100 times, and you would expect 95 of those experiments to produce a result between 499000 and 501000.
Arguing that there may be bias because "true random" doesn't exist is actually more of a philosophical one than a mathematical one. Computers generating random numbers based on the millisecond is sufficiently random and will follow the appropriate distribution.
In other news, I prefer to roll dice myself. I like dice.