アクティブなアイテムの最大数を返す関数があります。
返された結果をランダムな順序でソートできるようにしたいと思います。
public IList<Widgets> GetWidgetsToDisplay(int maxToGet)
{
var query = CommonSessionManager.GetSession().CreateCriteria<Widgets>()
.Add(Expression.Eq("IsDeleted", false))
.Add(Expression.Eq("IsActive", true));
return query.SetMaxResults(maxToGet).List<Widgets>();
}