Please help me find a formula that fits the distribution. It does not need to be exact, a simple approximation would suffice.
Bonus points if you can tell me which predefined distribution in the python module numpy could be used to generate random numbers from the distribution.
The plot (can't post images because too low rep)
The Gamma distribution is commonly used. Your plot does look like it might have a sharper peak than that, in which case you might use an inverse Gaussian distribution. Both these distributions have two parameters so you'd need to fit them to your data using Maximum Likelihood Estimation. The equations for these are given in the Wikipedia pages.