Attempts to select a random entity of the specified class from the frame hierarchy
associated with the given owner.
Picking a collected entity is different from using a collected entity in that
the picked entity can be selected again by other callers.
Attempts to select a random unused entity of the specified class from the frame hierarchy
associated with the given owner. If available, the selected entity is marked as used and
returned. The search traverses up the hierarchy until an entity is found or the root is reached.
If no entity is found, None is returned.
The selected entity will not be available for other use requests
until it will get recycled (through a recycle call).