Quote: "It doesn't spread the sprites nicely."
i think you want
quasi-random or
low-descrepancy sequences (vs truly random or pseudo-random). i've seen the term "scatter", too.
while i wouldn't begin to know what all that math is about, i would fake it by dividing the area you want the sprites to fall in into what i'll call "quadrants" (or some other form of dividing the area you want the sprites to fall in).
then, randomly pick a quadrant, randomly place the sprite inside the quadrant, mark the quadrant as "occupied" then move on to the next sprite.
if the number of sprites > than the number of quadrants, add 1 to each quadrant as the sprites are placed and use the quadrant "counts" as "weight" for subsequent choices.
it's been awhile since i wrote code to "uniformly scatter" (dunno what the real term is), but i feel the theory is sound