Jo super díky, nějak sem to už vymyslel.
for(int i = 0; i < list.length; i++) {
list[i] = (int) (stredHodnota + rozptyl * rand.nextGaussian());
Stačilo jen zadat správnou střední hodnotu s rozptylem a je to. Vytvořím si pole s počtem skupin a přiřazuju jim jednotlivé počty. Problém je, že rozptyl přesně neurčím a vždycky mam lidí o trošku víc či mín. Možná se to ještě nějak dá ošetřit, ale není to tak dramatické při tak velkém počtu, takže to snad stačí.