Example for 12 pellets: https://i.imgur.com/6tM2RiS.png
Each pellet could "spawn" somewhere in the area of the red rings. An easy way to program this would be to map out the initial static spread, then simply change the position of each pellet by minimal values (whether positive or negative, on both the X and Y axis).
I don't know how spread works on GunZ though.