SWI-Prolog Did You Know Did you know? Prolog actually IS good for torturing undergrads Search Documentation:
Predicate random_labeling/2