What is a good way to generate realistic utility curves? I am aiming to program a basic simulation of a simplified economy to look at the impact of various interventions. 

The economy will have N groups of homogeneous consumers and M producer / employer sectors. Each producer sector makes one type of good that the consumers can purchase, so there are M goods. To try to keep it (relatively) simple, the goods will all be independent with no close substitutes or compliments. E.g. goods will be steak and diapers, not steak and chicken, nor steak and potatoes.

Each group of consumers will need to have a demand curve for each of the M goods, as well as a "demand" for leisure.

Given the marginal utilities for each good, you can calculate a demand curve for that good. So, the approach I'm thinking is to generate utility curves for each good, then use those utility curves to derive demand curves which then drive consumer purchasing behavior and other downstream effects.

This brings me to the question, what's a good way to randomly generate a lot of plausible utility curves? 

For example, if I wanted a linear utility curve I could randomly generate a slope and an intercept. That is simple and easy to do, but it misses diminishing marginal utility which is one of the most important features.

What's a form that's easy to work with, has relatively few parameters to specify, and still captures most of the key features of utility curves?
It's somewhat simple, actually. You can just use a Cobb-Douglas with $m+1$ goods available, the last one being leisure. So, you should have something like:

$$U(x_1,x_2,...,x_m,x_{m+1}) = \prod_{i=1}^{m+1} x_i^{\alpha_i}$$

Subject to $\sum_{i=1}^{m+1} \alpha_i = k$, where $k$ is the degree of homogeneity of the utility function. Usually, $k=1$ is considered reasonable.