It really depends on how much your friends drink. A bottle of wine(or champagne) is usually 5 glasses. So based on 20 people you would expect people will drink between 3 and 5 glasses per person (assuming they are not driving). The challenge becomes to have enough red and white on-hand so if people drink more of one than the other, that you don't run out. In most places you can return unopened alcohol for a full refund, so my advice is buy 18 bottles of each (red and white) and return what doesn't get consumed. Or keep it for next time,