There are various types of random number generators (RNGs) that target different use cases, but a programming language can only have one default. For high-security ...
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.