avoid using C RNG