fix bug with rand(::MersenneTwister, ::UInt128) (#37808)
Generation of UInt64 and UInt128 share the same cache, but the routine
handling generation of UInt128 was not fully aknowledging the sharing.
This leads to situations like:
```
julia> m = MersenneTwister(0); rand(m, UInt64); rand(m, UInt128)
0x79ed9db9ec79a6a019c5f638a776ab3c
julia> rand(m, UInt64)
0x19c5f638a776ab3c
```
These values aren't independent enough!