Hi!
We don't have any ways to do this using a database query today. But if you know the amount of data won't grow wildly past 1000, I would suggest you load the ids to a collection in memory on application start, and then use a function that randomly selects ids from that collection, and then using a Aql.In query to fetch the random nodes. Something like this:
List<int> ids = GetProjectIds();
Random random = new Random();
List<int> idsToFetchForThisRequest = new List<int>();
for (int i; i < NumElements; i++) {
idsToFetchForThisRequest.Add(ids[random.Next(0, ids.Count)]); }
List<ArticleBase> articles = WAFContext.Session.Query<ArticleBase>().Where(Aql.In(AqlArticleBase.NodeId,idsToFetchForThisRequest)).Execute();