They just need to count the number of donors who have selected 'baby goat', count the number of baby goats you've distributed, and make sure they're equal. Charge enough per goat to cover some reasonable management overheads. If donors are supplying more goats than you need, stop accepting the donations and ask them to choose chickens instead.
Organisations do things like this all the time. Orders are placed, orders are paid for, orders are fulfilled. Internet retailers manage this millions of times a day with very low overheads. What's the problem?
If a charity wants donations to a general fund rather than a specific use, they should be honest about that in their marketing materials.