I "grew up" with the old roleplaying game 2300AD's system creation rules, which were based on fairly hard science (and used the Gliese star catalog as a map!) They have stood the test of time fairly well (here is an astronomer friend's take on it).
Here is a rough sketch of how I typically make my system generators, which is based on the same logic:
- Generate a number $N$ of planets in the system. At present there is no clear data constraining this, although we may imagine high metallicity stars could have more planets (but maybe not).
- Generate orbits $a_i$: start with a random innermost orbit $a_1$, and then make $a_{n+1}=(1+r_n)a_n$ where $r_n \sim U(K_1,K_2)$ is a random number. This imitates the Titus-Bode law pattern and looks roughly like observed systems. I tend to use $K_1=0.1, K_2=2$ but this is guesswork. Note that this process has problems handling hot Jupiters really close - you may want to add them by hand. It also ignore resonances etc.
- Generate a planetary seed size/mass. This can be done in an elaborate way by looking at exoplanet $(a,M)$ distributions and extrapolating to unobserved corners, or using some suitable skew random number distribution.
- From the mass and distance to the star, estimate planetary and atmospheric composition. Basically, outside the snowline ($\approx 1.4\sqrt{L/L_\odot}$ where $L$ is star luminosity) planets will start accumulating volatiles, and having ice crusts become possible. Essentially, decide on a core density randomly.
- Calculate the approximate minimum molecular weight retained based on the surface gravity. This will determine the atmospheric density. Especially, if the planet retains hydrogen it will become a gas giant: multiply up the mass a lot (the overall radius of a planet scales as $M^{1/3}$ for solid planets up to a few earth masses, and up to Jupiter size for gas giants - then degeneracy pressure will make the size level off and they become denser instead). Note that this is going to be the most fudgy step, since actually estimating a consistent atmosphere (especially exosphere) temperature, composition and pressure is really involved (and nontrivial even in reality).
- Given the size, temperature zone and atmosphere classify it suitably ("ice ball", "gas giant", "venusian hothouse", "super-earth", ...).
- Add random moons, rotation periods, eccentricities and whatnot, calculating their effects (like tide sizes, estimated magnetic fields, temperature variations, number of Hadley cells...) - lots of handwaving here, even when you base it on real astronomy and atmospheric physics papers.
This is the simple version. It does not try to actually simulate planet formation, where important processes like migrating gas giants can really affect systems.
You extra questions:
Right now it looks like planets are very common, so a system with no planets is likely pretty unusual.
Big moons might be uncommon, or they might be ordinary. In the solar system Pluto/Charon is also a pretty even pair. I personally think double-planets may be more common than people expect. We'll see.
Asteroid belts are likely pretty common. In a way we have two, the main belt and Kuiper belt. I would expect most systems to at least have a bit of debris that has not cohered in the outer regions.