This answer assumes that you have a collection of samples representing the gains in yards.
Use Kernel density estimation with a Gaussian kernel, to approximate the actual probability density function for the gains.
For the range of values that you want to generate $(-10, 100)$, go through and evaluate each value against the estimate to calculate the probability and store that result in an array location corresponding to the generated value. You can make this process as coarse or as fine grained as needed.
Create a new zero valued array and starting at the lowest value aggregate the values from the previous array ($cdf[i] = cdf[i-1] + pdf[i]$) at each index in order to produce an estimate of the cumulative density function.
(If on the final value the cdf does not equal one, you'll need to normalize the cdf array by going back through and dividing each entry by the last so that the sum adds up to one.)
As Scaramouche pointed out in the comments to your question, you can sample a value from the unit interval uniformly using a pseudo-random number generator in the programming language of your choosing.
From that value, you can then search over the cumulative distribution array to find the nearest match and use the corresponding array index to then calculate the value you want to report back between $(-10, 100)$.