Я знаю, что могу сделать X is random(10).
получить случайное число от 0 до 10, но - там подобная команда для получения случайного объекта соответствия?
Вы можете реализовать это. Вот версия:
%% choose(List, Elt) - chooses a random element
%% in List and unifies it with Elt.
choose([], []).
choose(List, Elt) :-
length(List, Length),
random(0, Length, Index),
nth0(Index, List, Elt).
Из http://ozone.wordpress.com/2006/02/22/little-prolog-challenge/