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.
Physics and Python stuff. Most of the videos here are either adapted from class lectures or solving physics problems. I really like to use numerical calculations without all the fancy programming ...