Zakładając, że id to id z koszyka klienta, a nie id artykułu, a artykuł to wartość którą chcesz wylosować.
SELECT `id`,`artykul` FROM `tabela` JOIN (SELECT CEIL(RAND() * (SELECT MAX(`id`) FROM `tabela` WHERE `user`='user')) AS 'id') AS rows USING (`id`) WHERE `user`='user'
Moje zapytanie się nie sprawdzi, nie przemyślałem możliwości mieszanie się id. Jak wstawisz where nazwisko=‘kowalski’ do zapytania Pablo_Wawa’y to będzie ok.