I've just finished a Python script to shuffle the names for Secret Santa and email each participant the name of the person they're giving to. Thus if you're not organized enough to get everybody together to draw names out of a hat, you can still do it without one person having to know who's giving to whom.
Sadly, I didn't get this done in time to give it a try last week, but hopefully somebody will find a use for it.
You can grab the latest version of the script here.
It depends on pytz, because in order to generate emails which stand half a chance of getting through spam filters, it needs to be able to generate proper timezone-aware dates. Using the raw email sending libraries in Python was a bit of an eye-opener - turns out Django takes care of a lot of twiddly bits behind the scenes, which you don't notice until you have to do it all by hand.