Interacting with the data is relatively easy once you've decided whats there, and made it.
We've got several options out there on what languages to code in and what not, but why don't we start with a data sample 3-5 classes then move up from there.
What is the domain of the data anyway? Are we including feats (they are often used as prereqs after all?) Items? Races? etc.
What is some sample input and output?
Probably the most important question I've seen thus far in the thread, what input are we actually going to be giving the CharGen, and what are we expecting in return.
As for the language and program itself, a web based one is nice and all, but I can see why some might want it elsewhere. I've never used java to interact with a sql database however I'm sure its possible, a csv should be too.
I personally have familiarity with PHP, Java and SQL and am willing to help. I'd start this project by answering the question posed by rebel in the form of either a CSV or SQL database, once you've got that done you can then decide on which language to make your first CharGen out of. By taking this approach of I/O and Data first you could easily offer it up as open source as we're likely going to have to anyway and someone who doesn't like your C# or Java app could take the freely accessible data and make a php based web interface too.
A small sample of the data makes the actual programing and testing of a application easier anyway, and of course if we design the database we can always make a steamlined php based page for someone to enter the data for us while we worked on the actual CharGen, then included the completed database at a later date. So some without actual programing knowledge would be able to help us.
1) Desired Output - Be specific on possible outputs, and what we expect to get from the CharGen
2) Input - Be specific on what information we're giving it
3) Select a Database type and lay the groundwork for it - a CSV or a SQL database are my suggestions
4) Build a data entry GUI - so that a limited number of people (of the development team) can begin entery
5) The hard part....