The crossword on the front page of this site is generated by CrosswordSmith, a Prolog program I created which solves the problem of arranging a set of words in a sensibly crosswordy manner. Each time you hit the page, the program is run and a randomish solution is found. Certainly not the optimal of way of doing things, but it amuses me.

You can find the source code on GitHub.