The Simple Name Generator that the Downloads section suggests is good effort, but it has a number of architectural problems. First, it mixes up names from all games together, with a considerable speculative element. Second, its data is embedded in the code and it's hard to maintain.
I'd like to present a new take on that theme, a Lore-friendly TES name generator, hosted on modding-openmw.com.
First of all, it's a pure client-side web app that needs no installation (though we are planning to make an offline version). The code and data are under the MIT license, so everyone can host their own copy.
It looks like this:
Second, it allows you to choose the game to take names from, and produces strictly lore-compliant names without any speculation. Right now Arena/Daggerfall and Morrowind are supported, but it's easy to extend with new games and speculative grammars, because...
The grammar of character names is separated from the code and more or less editable for non-programmers. For formal language geeks, it's a context-free grammar defined in Backus-Naur form. It should be intuitive enough without knowing any of those words, but if anyone wants to help with adding data from later games, I can help with the format.
The downside of hardline lore-friendliness is that for some races in Morrowind, there's a limited selection of names. For Bretons or Dunmers, there are lots of possible first name + last name combinations that could appear in the game but don't, but for Altmers or Bosmers, it only gives you names that do appear in the game.
The only bit of speculation it has now is correctly gendered last names for Imperials. Roman last names have inflexions, and many names do appear in both masculine and feminine form in Morrowind (e.g. Artoria/Artorius, Vitellia/Vitellius), so real roman names and "sufficiently latin sounding" ones use different suffix depending on the selected gender.
By Oblivion time, the resident Latin speaker apparently left the team and they started giving Imperial characters incorrectly gendered names, so whether the same rule should used for post-Oblivion names needs discussion.
Any feedback is welcome.