When you watch a race, it unfolds sequentially, until by the end there is a history of that race that you could tell someone as a story. Some research like watching races with your buddies might show off what the most exciting parts are, or how the story tends to divide itself up.
In the "race" part of the game, you could randomise a story like this, having the story unfold as the player passively watches, periodically spitting out sentences describing the major events in the race (), with a dramatic pause between each (picture moving ellipsis .....) and use those events as the build up to who wins or who doesn't. You'd need to use a stack to track the positions of the various drivers as you make each statement.
So for example
- "They're at the line up. Mansell has pole position...."
- "And they're away! Senna's moving quickly, he outskirts Prost..."
- "and Patrese!..."
- "Oh! Patrese swerves out of the way and Häkkinen is into the boundary! What a start we're off to!..."
You could break this up into early race, mid race, and end race, keeping each section brief (maybe 10-15 lines?) so that things don't get too boring. This way, you are rewarding the player with a suspenseful race after all the effort they've put in setting up their car and driver. Also cool to see the name of your driver mixing it up with the other drivers when the commentator focuses on him/her. You could even have simple sound effects for many of the events as they happen, like tyres screeching, revving hard, or gearing down... just to add some life to the text output.
All these events are templates of course, which you will probably create and store in a long text file that you load at runtime, and you can then mix and match them in different ways to create the race experience as commentated. Some events rely on others, such as where one of the drivers crashes due to another one's reckless action.
Of course, kitting out the cars in the first place would be part of who wins and who loses on which tracks, meaning it has an effect on what story events are generated as the race proceeds. Crappy tyres? Expect a blowout on a hard corner. Ferrari engine? Expect superb acceleration. Cars with good traction and suspension win on curvy tracks, cars with best top speed win on long-straight tracks. Or you could do it by track section if you wanted more detail, i.e. straights, long bends, and esses.
PS. You could even do a sci-fi or fantasy themed race. Perhaps more fun? Just my two cents.