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.
In the real world, probability is a tough thing to characterize. If I roll a die, what does it mean to say that it has a one-sixth chance of coming up 5? We say that the outcome is random because we ...