Gambler's Fallacy Dice
R, 59 bytes



function(){T[o]&lt;&lt;-T[o&lt;-sample(6,1,,max(T)-T+1)]+1
o}
T=!1:6


Try it online!

Keeps the counts in T, which is then transformed to be used as the weights argument to sample (which then most likely normalizes them to sum to 1).

The [&lt;&lt;- operator is used to assign a value to T in one of the parent environments (in this case, the only parent environment is .GlobalEnv).