It would be great if a random result could be by the shortcode. The WordPress get_posts() function handles this with the orderby parameter. I would imagine the shortcode looking something like this:
[project id=1 orderby="rand"]
This would need to be implemented with a parameter limiting the number of results, so that you would be able to return (for example) one random result:
[project id=1 orderby="rand" results="1"]