NumPy includes some tools for working with linear algebra in the numpy.linalg module. However, unless you really don’t want to add SciPy as a dependency to your project, it’s typically better to use ...
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.