separate RandomGenerator and RandomNumberGenerator