Some years ago I made just such a system; I've made it work for D&D, RuneQuest 2/3, Pendragon & Ars Magica, so I suppose it is reasonably generic.
This is a "pure genetic" system, and does not allow for the effects of environment.
The first step is to retrieve - or recreate - the original dice rolls involved in creating the parent characters' characteristics. For example (assuming 3D6 characteristics):
Strength Intelligence ...
Mum: 6 + 3 + 4 = 13 1 + 6 + 5 = 12 ...
Dad: 5 + 6 + 5 = 16 6 + 2 + 6 = 14 ...
The trick here is - if you didn't record your exact rolls at character generation - to roll dice for each characteristic until the combination of \$n-1\$ rolls in \$n\text{D}x\$ is such that the last die must be between 1 and \$x\$ for the characteristic total. In addition, where possible, write down the die rolls in the order they were rolled or in random order, not in any sorted order. Make sure that these die rolls are written down for future reference.
Imagine, then, that each die rolled in a characteristic score is a gene. We can simplify the whole complexity of Mendelian genetics by stating that a child inherits a gene from one or other of his/her parents. So, for each "gene" (i.e. die score), flip a coin (or use some other form of 50/50 random result generation), and using whatever rules you want as long as you stay consistent, select the die score from either the mother or the father in the same column, e.g.:
Strength Intelligence ...
Kid 1: 6 + 6 + 5 = 17 1 + 2 + 5 = 8 ...
Kid 2: 5 + 3 + 4 = 12 6 + 6 + 6 = 18 ...
Kid 3: 6 + 3 + 5 = 14 6 + 2 + 5 = 13 ...
...
This provides fairly variable results, yet can be shown to be derived entirely from the parents.
An alternative is to sort the die rolls (in a system where that is possible - this wouldn't work for Ars Magica characteristic pairs where one D10 is positive and the other is negative) from low to high; this would reduce variability somewhat, e.g.:
Strength Intelligence ...
Mum: 3 + 4 + 6 = 13 2 + 3 + 6 = 11 ...
Dad: 5 + 5 + 6 = 16 1 + 4 + 5 = 10 ...
Kid 1: 3 + 4 + 6 = 13 1 + 3 + 5 = 9 ...
Kid 2: 5 + 4 + 6 = 15 2 + 4 + 5 = 11 ...
Kid 3: 5 + 5 + 6 = 16 2 + 4 + 6 = 12 ...
...
To allow for things such as racial bonuses/penalties, my solution was to average them; this worked easily when the average was a whole number, but when the average is a fraction, my solution was to roll a die or flip a coin to decide whether to round up or down.
As I stated earlier, this discounts the effects of environment. Scientific studies have shown that in separated-identical-twin studies, if one is given as much stimulation as possible in a particular area, and the other is neglected as much as is ethical in the same area, the stimulated child will be significantly better in that area than the neglected child. The question is then how to simulate this...
Mutation
In order to add extra variability in a believable and accountable manner, we can allow for mutation. Depending upon how frequently the GM wants mutation to occur, once the child's characteristic dice have been determined, roll a D(whatever) for each child die, and if the D(whatever) comes the minimum value, subtract 1 from that child die (down to the minimum possible), if it comes up as the maximum value, add one (up to that die's maximum possible), otherwise do nothing.
It is also possible to mutate a racial bonus if desired. For the most part, treat it as another die, except that it can also be negative, and the GM may want to impose limits upon its magnitude. For 3D6-based games, ±0–3 seems to work for most cases, and ±4–6 for highly exceptional cases.
If you wanted very frequent mutation, use a D6, otherwise a D20 or even a D100 might be more realistic.