If I understood correctly, you can code it differently - no loop needed.
1] Put all the "talks" in an array.
2] Each time you need one, randomly chose one from the total array entries, play it, and DELETE that entry from the array.
3] Have a random (within logical time limits) re-calling of the same rule, to achieve that (Rule Add One Shot).
Even if you do not want to use step 3], consider using the Array idea, in order TO EXCLUDE playing the same "Talk".
- BloodyVomit likes this