I've thought some more about you script and have some more ideas for you.
I think a floating web dialog that stays on top while you work with the tool would be a good idea. Maybe it could have tabs to make the window as small as possible but still have room for lots of settings.
At the top there could be four (or more) icons for the different tools: Click placement, Paint placement, Draw region and Select a predefined region from a curve.
The paint tool should work like a brush or spraygun that you can set the diameter for the brush. Show the brush size in viewport as a ring and while pressing a specified key and dragging mouse right or left you could change the scale of the brush.
As for the amount of different components I belive the more the better. Maybe a possibility to choose a directory and all components in that directory would be used.
How does the script choose component based on randomness? Maybe it would be good if it recoginzed the last used component and removed that from the next "selection round" so that two identical components never was used next to each other.
When it comes to scaling I believe that a way of choosing what axes it should scale would be good. Many times you might just want to scale it in one or two axes or use different min/max values for different axes.
Just my thoughts...