We are doing this for the first time this year as we are visiting DD in Australia, her in laws are joining us too, so DS has sorted us out using www.drawnames.co.uk/ Not for the children though!
I also do a version with a group of girlfriends that I meet up with in the run up to Christmas - you each have to buy a gift in a Charity Shop for £5, and wrap it anonymously, then we all dip in and take one, so you are not buying for a specific person, usually something amusing, its amazing what you can find for £5 and so the charity shops benefit, and if you don't like what you receive you can just pass it to another charity shop - double benefit! You may even get something you really like!