Well, two, actually. I was lying.
It's actually quite easy to produce a round-robin league schedule. If you know what you're doing, that is. I've written a little DOS program called SCHED that does the job. Click here to download it (it's a ZIP file), and keep reading to find out what to do with it.
When you run the program, you are first prompted for the names of the teams or players in your league. Enter them, one per line, and then enter 'q' (without the quotes) to tell the program you're done. Then enter the number of times each pair of teams (players) meets -- this might be just once for a single round-robin, or twice for a league in which the teams face each other once at home and once away. The program works out how many matches will be played in total; provided this number is less than 600 (and, if it isn't, you're in for a *very* long season!), it'll then work out a (random) schedule, and save it in the file SCHED.OUT.
The schedule produced has the following (presumably desirable) properties:
The method used to arrange the matches is well known in the branch of mathematics known as graph theory; it also happens to be essentially the same as the method used in the soccer leagues in Germany, Spain and numerous other European countries.
I also have a second program, which I called FIELD. Instead of assuming that each team has a home field, this program assumes that the "right" number of fields (half the number of teams, rounding down if necessary) is available, and then arranges the matches so that each team plays on each field as near as possible to an equal number of times. The methods are an implementation of those in a paper by Blest and Fitzgerald in a journal whose title apparently eludes me at the moment. Click here to download the FIELD zip file; as with SCHED, it's a DOS executable when you unzip it.
When you run FIELD, you are asked, as in SCHED, for the names of the teams, and then for the names of the fields on which the matches are to be played (you can equally well enter times rather than places here). The program works out a random but balanced schedule, and saves it in the file SCHED.OUT, listing, for each round, all the matches together with where they are to be played.
Comments or questions on the programs or their behaviour? Drop me a line at email@example.com.