I would like to have a set of links
<li>
<h2>Random Articles</h2>
<ul>
<li><a href="#">Old article 1</a></li>
<li><a href="#">Old article 1</a></li>
<li><a href="#">Old article 1</a></li>
</ul>
</li>
But I want to generate the links from a random selection of my posts. I'm using jekyll and liquid to generate the site. I must use built in parts of jekyll as I'm hosting on github. I'm not really sure where to start on this. Google searches on the topic are fruitless.
I had a similar desire and got down to defining a custom Liquid tag (see http://github.com/mojombo/jekyll/wiki/Plugins) which accessed posts through context.registers and selected ones at random, but note that once Jekyll generates your site, that random selection remains static until the site is regenerated. I would suggest a different option: have Jekyll write those all those post links into an array in JavaScript (included inline in the layout), which is shuffled and the top three links are then displayed on the page. You could even enhance this so that those three links rotate with other ones in the array with a setInterval() call. It's not the most elegant solution, but dynamically generating random content doesn't seem quite inline with the design philosophy of Jekyll anyhow.
I found this article to be useful to generating numbers using Liquid, it is not straight forward, nonetheless, it is the most elegant way to generate a random number with min/max.
The following example is for a number between 65 & 80.
This is choosing a random quote from a JSON file in _data but the principle should work with your posts as well:
I had a similar idea for a web site I am working on and resorted to write a plugin (see below). As Peter pointed out, the random selection will happen at generation time, so if you are looking at something dynamic you will have to look elsewhere.
Anyhow, this in the plugin I wrote (I placed it in my _plugins directory, eg. .../_plugins/randomPage.rb):