I use Shipit from Albion Software. A bit of a learning curve to set up properly, but once it's set up, it works great. There's a Yahoo support group for it that you should check out as well.
http://www.albionsoftware.com/
I personally used wetware for traffic generation, with a car card and waybill system that's a bit more complex than most. Thinking of what traffic should originate or terminate at my on-line destinations allowed me to come up with something like, "Deliver a boxcar load of sacked rice to the (name of station) team track for the Company Store on Thursday." Then I prepared waybills, each labeled with the date in September that corresponded to a Thursday.
After doing the same thing for outbound shipments and for all the other plausible destinations I ended up with a deck of waybills, each with a number between 1 and 30. So, at 0700 on the fifth of September, 1964, JULT (Japan Universal Layout Time,) I take all the '5' cards and allocate them to empties in staging (for inbound loads) or where cars might be captured or held (local yards and stations) for outbound loads. Cars without assignments get 'through' waybills and proceed from staging to staging as the various freights make their timetable-appointed rounds.
The reason I used wetware rather than software is that I created those waybills while doing duty in Thailand during the war in SEA. Now, forty years later, I'm finally building the layout the system was designed to support.
Chuck (Modeling Central Japan in September, 1964)