There are some people for whom it is impossible to shop. Either they don't need anything, or they don't want anything, or they live in Africa and mail is impossible. For folks like these, I like to donate to a cause on their behalf. You can usually print out a donation certificate online, or send it via email. Easy peasy, and if it is a registered non-profit, you can write off your donation, too! There are a ton of places to donate money; here are a few of my favorites.
Team Rubicon

Doctors Without Borders

Heifer International

Crowdfunding
While not strictly charities, crowdfunding is another way to give and you can find some amazingly personalized options. This year, I donated to a project making a film about a band that always reminds me of a particular uncle. He'll get a token gift, but this will support something that he likes. Choices for crowdfunding include Indiegogo, GoFundMe, and Kickstarter.
The best thing about all these choices? You can do it from your sofa, and still have your "shopping" done before Christmas. Win-win-win!