Create an rng object with np.random.default_rng(), you can seed it for reproducible results. You can draw samples from probability distributions, including from the binomial and normal distributions.
The generator is based upon Mersenne Twister, which is able to generate numbers with excellent statistical properties(indistinguishable from truly random). However ...