The complexity - and volume of 'starter data' - of the program would vary greatly depending on the sorts of results you want.
Easiest of all would be a program to generate random series of A-Z letters from (say) 2 to 20 characters in length. Of course, the vast majority of these would be unpronouncable and would resemble a toddler pounding on your keyboard.
More complex, you could have it obey some basic rules about when to insert a vowel, what sorts of consonants can be placed together, etc.
More complex still, you could create a vast library of just syllables, and have it assemble them in different combinations.
And at very high complexity, you could have a program that even understands which syllables mesh well together, produces words of harmonius length, with good meter. Going a step further, you could even generate words that sound like a specific language...
So to answer your question: I don't know of any, but depending on the quality of the words you want, it might be a program of considerable size & complexity.