This is for determining the type and order of planets around a star, including empty orbits. If needed, this can easily be adapted to 'skip over' companion stars, or, alternately, you can simply add the appropriate worlds generated to the companion.

Here's how I do it.

Take two carefully chosen lists of numbers. Here are two care

*less*ly chosen lists for illustrative purposes:

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> List 1: 0 1 0 2 0 0 1 1 1 0 2 0 0 1 0 2 1 0

List 2: 1 0 0 1 1 1 0 2 1 1 0 0 1 0 1 1 2 1</pre>[/QUOTE]For each system, for each list, ignore the first D6 numbers and take the rest. Add those two lists together, and you've got a solar system of sorts. Figure out how many orbits the star has, and then you know what's in each orbit:

0 is an empty orbit

1 is an asteroid belt

2 is a planet

3+ is a gas giant

Example: I roll a 4 for the first list, and a 2 for the second. I'll also roll 2D to figure out how many orbits the system has (let's say the roll is a 7). My two resulting lists, truncated to 7 numbers, are:

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> 0 0 1 1 1 0 2

+ 0 1 1 1 0 2 1

-------------

0 1 2 2 1 2 3</pre>[/QUOTE]So the contents of each orbit is:

0: empty

1: belt

2: planet

3: planet

4: belt

5: planet

6: GG

With proper list tuning, you can set the probability of planet types turning up, and weight the distribution of worlds at the near and far edges of the system, to a certain degree.

This results in up to 36 different solar system configurations (not counting varying the overall number of orbits). Rolling 2D instead of 1D will increase the number (and introduce a weight towards the center) to upwards of 100 different configurations. Add this to a random stellar configuration algorithm, and the overall variety could increase twofold again.

In a truly random universe, the number of solar system configurations is exponential. With four possibilities per slot, the configurations for ten slots is 4^10 -- about one million. Those numbers can be trimmed back by adding some heuristics, but at the end of it all there are a large number of distinct systems that the human eye will find interesting.

The average human won't care for all million cases, but 36 is pretty sparse, and 100 still seems rather limited. So this algorithm is best used when you need a system and you need it NOW and you're not otherwise prepared.