Bulk creation of single use promo codes

Hi there!

Has anyone found a way to create source/promo codes in bulk that are one time use?  My director wants to create 200+ one time use codes for $20 off a future performance, and I would love to find a better way of doing it than by manually making each one.  I also have to do something similar for our Nutcracker children's cast of 150, and if this upcoming test of promo codes is successful, she wants do the same thing for closer to 500 people during our Nutcracker season in December. 

I also would love to find a way to not destroy the usability of my source list in ticket orders with all of these codes. 

Any help would be greatly appreciated!  If you have a different way of doing this, please let me know!  

A pricing rule based on a list or constituency doesn't seem possible based on some of the limitations that my director wants on the promotion (she essentially wants people to be able to use this $20 off on top of other promotions - so I'm thinking that using the promo to trigger an MOS shift to unlock a $20 off price type so that it can be combined with other discounts applied via pricing rule).  If someone has a workaround for that, that would also make my life (and my box office staff's) easier!