You may want to consider a 3D approach to the code; the end result will still be 2D on the screen or printed page.
Example:
There are other ways to do this and I shared mostly for the visual effect.
Each circle in above topic could be a floret\seed head and generated separately; you just make one, add some randomness and transform (translate and rotate) it… then the next one.
You would have to place or pack circles on a sphere as required… this is very achievable.
There is definitely order in nature with a touch of randomness: