Mi piacerebbe dare una risposta specifica, ma avrei bisogno di aiuto per capire il tuo processo di pensiero...
Inizi scrivendo:
Ma poi continui a scrivere:
Per me, quest'ultima specifica ha poco senso alla luce della prima osservazione.
Imho, quello che vuoi veramente è che gli utenti abbiano la stessa quantità di opportunità di votare su ogni macchina. O più precisamente, votare ogni vettura rispetto a un'altra vettura.
Se si presume che le variabili (auto) siano indipendenti, è necessario tenere un conto di quante volte è stata scelta una scelta, anziché di quante volte è stata votata, e modificare di conseguenza il processo decisionale. È un problema di matematica, non è così brutto e può quindi essere tradotto in SQL nel bene e nel male -- oserei che probabilmente sarà peggio.
Se assumi, come me, che non siano indipendenti, devi anche tenere conto delle correlazioni e memorizzare anche quante volte si sono inventate l'una con l'altra. Perché, beh, c'è una possibilità infinitamente piccola che tu non preferisca questa Mercedes piuttosto che quella Tata, quella Xinkai o quella AvtoVAZ. Ma data la scelta tra la stessa Mercedes, una BMW, una Porsche e una Ferrari, la decisione potrebbe non essere così netta.
In altre parole, le tue specifiche non rispondono affatto al problema come l'hai presentato.
Al momento sto chiedendo di essere d'accordo con la risposta postata due ore fa:sceglili davvero a caso e sarai soddisfatto senza codice aggiuntivo...
Come nota a margine, se i tuoi ID non hanno davvero spazi vuoti, genera quattro ID in php o altro e recuperali usando un in()
dichiarazione. Non diventerai più efficiente di così.