Don't use the current generator to gen the new seed

This gen might possibly want be passed through 
to the block untouched which is indeed the case 
with the current with_fx implementation)
support ranges for rand & rand_i
Ensure Ruby < 2 has thread set fns.
Behave the same as Ruby's rand when passed 0.