Hmm...I really like this problem, but I don't know offhand how to attack it. A simpler question, which I still don't know how to answer, is how to compute, for each face of some given convex polyhedron, the "landing probability". Your problem is a kind of inverse--given some probabilities, find a convex polyhedron that realizes them.
All the standard dice (except for d4) have faces arranged in parallel pairs; without this arrangement, there won't necessarily be a side facing "up". I'd avoid this problem by just deciding that it's the down face that determines the result of a roll.
I wonder if a random 20-sided convex polyhedron tends to have a certain kind of distribution? We'd have to decide what we mean by "random", and probably need to restrict to some kind of "nice" subset, e.g. reject dice that are a million times as long as they are wide. Also, a given face could have probability zero, i.e. the die is not even stable with that face down, so ruling that out gives us another restriction on our space of dice.
Finally, since this is your first post here, it's possible that you really just want a bell-curve d20 and you're not interested in the mathematics for its own sake. In that case, I have a "cheating" solution for you: get one of those d100 dice, the ones that look like a golf ball, and mark your own 1-20 numbers on it, with the central ones appearing more times than the extremes.