Hi,
I have done a lot of development using C# and can create a program like this for you.
The way I would intend to do this would be:
1) Build a set of wordlists, these will be built in to the software or could be seperate files so you can add new wordlists whenever, - these can be categorized if you want so you can have category based crosswords or you can have random wordlists.
2) Software picks random words from the list and places them in the crossword.
3) Software outputs the crossword in the desired format.
I have a couple of questions though:
What sized grid(s) would you be looking to generate with the crosswords?
What output format(s) would you like?
Thanks,
Alex