I don't know if they are completely random; it could be a grandparent.
I seriously doubt it just on a programming point of view. That would require that the software maintain a database of the grandparents for each and every villager (once your tribe gets beyond its first round of villagers). Given that it's possible to have as many as 115 villagers at a time, that's a lot of data that has to be maintained.
I'm not saying it's not possible or the reason for the odd children, but it just doesn't strike me as being something important enough in the game to merit a full database of genetics.
Instead, I think the software merely takes the average of the parents at the time in which they breed. They do maintain the genetics until the child is 18, but they drop it after that.
The more examples of these "odd" kids that turn up, the better chance I have of finding any kind of pattern. Could it be 1 in every 10 births? Or the time of day or night in which the child is born (if born at <hour>:15, then it'll be a random child which results in a 1 in 60 ratio due to there being 60 minutes each hour)? Maybe there's a basic calculation of the general tribe, and when it's found to be too far out of balance (or too balanced with all villagers' numbers being rather close to each other), then a "new" kid is mixed in? I doubt any of these are the case, but it's important to consider various possibilities.
I just think however it's done, it's done at the time the child is selected (when they turn 2 and we can finally see the child), and it's done using some kind of mathematical equation.