Создаете таблицу attribute с полями attribute_id, attribute_name
В этой таблице только текстовая информация, то есть собственно «Год выпуска», «Пробег», «Объем двигателя» и так далее
Создаете таблицу attribute_to_product с полями
id, product_id, attribute_id, attribute_value
И джойнами склеиваете таблицу products с аттрибутами
ORDER BY RAND это будет жесть
Разбейте на интервалы с шагом, скажем, 5 000
Первый рандом — выбор интервала, скажем от 200000 до 205000
Потом проверка пробегитесь по этому интервалу и найдите все «пустые» значения. Среди них выберите случайное.
Если «пустых» нет — пометьте, что этот интервал занят полностью и больше его не используйте