Simply provide a list of recipients and bad matches (couples, enemies, previous matches, etc.) and this tool will generate random assignments. See it in action here.