OK, I've spent a bike ride thinking about this, and I think what you want to is the following.
You make a file, a template, containing the basics of a mission. Anything you want randomised, you simply use a certain tag, like $RndShip or $RndInterceptor. The program would acces Ship.ini or Interceptor.ini, and simply take a random entry out of it. If you want something like a ship name, you obviously want it to be the same across the plane, so you define it at the top of the file, like this:
$VarCapname1 = $RndTerCapname
Then, where ever you want the name to be listed, you use $VarCapname1 instead of a name.
If you want a random number, you simply do this:
%VarNumber001 = %Rnd(Min,Max)
Min and Max would be the minimum and maximum numbers.
The FS2 file wouldn't see this, just the implemented name, or number.
You could adapt the files easily, and add anything to randomize. If you support multi lined items, you can do random backgrounds too. And if you want to expand the lists, you only need to make it, and give it a unique name.
The program would output a fs2 file, where the random declarations are gone, and the ship names and stuff are all in place.
This way you make it as modable, and simple as possible. Expansion is always possible, but this would be, in essence, a very simple parsing job.
The input from the mission maker would be more work, but they asked for it.
