Всъщност това е възможно с Критерии и малко настройване. Ето как:
Criteria criteria = session.createCriteria(Table.class);
criteria.add(Restrictions.eq("fieldVariable", anyValue));
criteria.add(Restrictions.sqlRestriction("1=1 order by rand()"));
criteria.setMaxResults(5);
return criteria.list();
всеки Restrictions.sqlRestriction ще добави ключова дума 'и'; така че, за да анулираме ефекта му, ще добавим фиктивно условие и ще инжектираме нашата функция rand().