Uhm, bei mir kommen recht unterschiedliche Zahlen raus?
Code:
> function test(n, min, max) {
... var a=[];
... for (var i = 0; i < n; i++) {
..... a.push(zufallszahl(min, max));
..... }
... return a;
... }
undefined
> test(100, 1000, 2000);
[ 1556,
1259,
1769,
1052,
1811,
1106,
1771,
...
1533,
1891 ]
Code:
> function test2(n, min, max) {
... var counter = 0, avg = 0;
... test(n, min, max).map(function(i) {
..... avg += i;
..... counter++;
..... });
... avg /= counter;
... return avg;
... }
undefined
> test2(1000, 10000, 20000);
15097.014
> test2(1000, 10000, 20000);
15115.344
> test2(1000, 10000, 20000);
14879.681
> test2(1000, 10000, 20000);
15006.768
> test2(1000, 10000, 20000);
14975.547
> test2(1000, 10000, 20000);
14992.434
> test2(1000, 10000, 20000);
15017.513
Das sieht doch auf dem ersten Blick solide verteilt aus?
Edit: parseInt ist eigentlich eine dumme Methode, um Zahlen zu runden. Es gibt extra Math.round dafür, denn parseInt macht aus 1.5 auch 1 und schon ist dein Zufall auf einer kleinen Zahlenmenge direkt über diesen Generator verfälscht.