According to Andrej Karpathy on Twitter, the Python random.seed() function produces identical random number generator (RNG) streams when seeded with positive and negative integers of the same ...
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.