To help others with this issue, this is what I ended up doing:
I have two families - one has my 'generators' in. The other has my 'generated objects' in.
For the 'Generators' family, there is a family-level boolean of 'used' (necessary to use so that you don't get multiple objects spawning on the same site).
----+ System: On start of layout
-----> Functions: Call fruitGenerator (generator: "genBerry", fruit: "berry", number: 2)
-----> Functions: Call fruitGenerator (generator: "genCarrot", fruit: "carrot", number: 4)
----* On function 'fruitGenerator'
----* Parameter 'generator' (String)
----* Parameter 'fruit' (String)
----* Parameter 'number' (Number)
| Local number i = 0
--------+ System: While
--------+ System: i < number
------------+ System: Pick a random generators instance
------------+ System: generators.ObjectTypeName = generator
------------+ generators: [X] Is used
-------------> System: Create object fruit on layer 1 at (generators.X, generators.Y), create hierarchy: False
-------------> System: Add 1 to i
-------------> generators: Set used to True
--------+ System: Pick all generators
---------> generators: Set used to False
Thanks again for the help!