Thank you Ian for the link and solution for 20 cars, I think with those we can make it work for us by throwing byes in there as needed.
I had another thought while reading your reply. It might be better to divide the field into pools of six cars each (or as close as we can get to it). All cars will have the same number of races, and race each other car in the pool at least once. We then use the results to seed the field into a traditional single elimination head to head draw to determine the winner.
If we do this then I would only need solutions for 5, 6 and 7 (or 6, 7 and 8 if that is better) cars to handle the variations that might occur with the number of participants. Would you be able to find the solutions for this case?
Thank you again for your help, it is much appreciated.