随机数生成器

最近遇到一个有趣的问题，我给大家分享下，希望能够得到指导。
目的：生成一组随机数（个数每次不同，可进行选择，比如20、30。。。。）
要求：已知该组随机数的平均值，根据已知的平均值、随机数的波动范围、随机数的数量、小数点位数生成一组随机数。


说明：我感觉上面那个要求已经说清楚了，如果看懂了就不用看这个说明了，我会在说明中再解释一遍，首先我已知一个平均数，这个平均数是我给定的，而不是实际计算得出的，所以我需要根据这个平均数模拟出一组随机数，这组随机数的平均值必须是我给定的那个数；并且在模拟出这组随机数的时候，我还对随机数的数量、波动范围（也就是不能离我的平均数太远，以免数据太假）、随机数的小数点位数（2位、3位。。。不过这个位数我认为不是关键要求，如果无法做到可以暂时不考虑）


备注：我把这个发出来得原因是我认为我现在想到的这个方法有点笨，想听一听大家的想法，希望能够得到大家的指导，希望大家能够畅所欲言，大家一起讨论下这个问题。



我的思路：
我希望大家不要先看我的思路，以免被我的笨办法带偏！
1、平均数已知，数量已知，则该组随机数的总和为平均数*数量（总和=平均数*数量）；
2、首先利用随机数生成函数按照波动范围（上下限）生成第一个随机数，则剩下随机数之和（余量=总和-随机数[1]）；
3、利用For循环生成数量减一个随机数，同时没生成一个随机数，则计算一次余量；比如我要得出10个随机数，则利用For循环生成9个符合要求的随机数，则最后的余量则应该是我的最后一个数据；
4、因为我在生成随机数时，已经对上下限进行了限制，所以前9个数据肯定是符合我的要求的，但是余量就不一定了，所以我需要对余量进行判断，判断最后的余量也就是最后一个数据是否符合我的波动范围，如果不符合重来，符合则10个数据均满足我对数据的要求，输出即可。


可能哪里有表达的不清楚的地方，大家随意提问！