I really like the idea of randomized modules. It should be relatively simple, too: Make a ship. Now, choose a block where a module will connect. Go build a module. Choose the block (And orientation, just like permanent rail docking) on the module that will connect. Now, you have two versions of the ship: One with, and one without the module. Now, go build 2 more modules for the same spot. Then go make 2 or 3 modules for a different spot. Let's say you have 3 for each. You now have 9 possible vessels (By my math) each with two modules, then 1 with no modules, and 6 more with one module only. That's 16 vessels, all with work required for less than two.
Now all you need is a program that will choose modules in succession (Keeping in mind the "No modules" option), for each point. You get exponential expansion of the vessels that can appear in the game, all with minimal work. Every vessel can become a new challenge, based on whether it can fight longer (Armor/shielding unit) or faster (Thruster) or escape (Extra jump drive) or fight back (Weapons pods), whatever.
Let's say you make the following: Cargo pod, engine pod, extra weapons (Of all useable types. No damage pulse or shotgun beams/cannons, please), extra crew space (Boarding parties/space marines, anyone?), medical bays, who knows.
Now, you choose a set number of locations on a ship where one of these modules can appear. So, let's say at the back of the vessel you put a place where a small AMS drone can be docked. In one iteration of the ship, there's an AMS drone there. The next, it's a small medical closet. Then another ship that spawns has an extra engine there, making it faster. The AMS drone-carrier is better defended. The medical version can support its crew better.
This should mostly be present on Outcast or Scavenger vessels, because the TG would go for mass production of vessels with defined roles, not just slapped-together messes of parts.