The easiest way to do this is to provide "stripes" for a random number. In your example, you have 15 players so that you can:
rand < 1/15, highest strength 1/15 < rand < 3/15, second highest 3/15 < rand < 6/15, third highest 6/15 < rand < 10/15, fourth highest 10/15 < rand < 15/15, lowest strength
You can also parameterize such a function with the βmaximumβ number of each strip that you allow, and when the strip is full, it is included in the next lower existing strip (except for the lower strip, which will be included in the next highest) the number of them with a random distribution.
Edit add from my comments:
To get the structure of a pyramid with a floating range, the best function is likely to be the logarithm. Formula:
11 - log10(rand)
will work (with log10 is a logarithm with base 10) as this will give ranges, for example:
1 < rand < 10 = 9 < strength < 10 10 < rand < 100 = 8 < strength < 9 100 < rand < 1000 = 7 < strength < 8 etc.
but rand would have to range from 1 to 10 ^ 10, which would require a lot of randomness (more than most random generators can control). To get a random number in this range, you can multiply them together. 3 random numbers could control it:
11 - log10(rand1 * rand2 * rand3)
with rand1 having a range of 1-10000 and rand2 and rand3 having a range of 1-1000. This would slightly distort the distribution from the correct pyramid, although (most likely, I will have a number in the center), so it may be unacceptable.