Don't use the session for this. Since HTTP is a stateless protocol, you should avoid using session to the greatest lengths possible. Since the user is clicking on a link, it only makes sense making that link convey the information you're after. Just pass any data you want in the URL, e.g. as a a query string parameter:
http://example.com/page_x?bgcolor=1 
http://example.com/page_x?bgcolor=2 
http://example.com/page_x?bgcolor=3 
Then you can just query for this in the page template like so:
<?php
  /*
  Template Name: Varying Background Color Template
  */
  $bgcolor = $_GET['bgcolor'];
  switch ($bgcolor) {
    case 1:
      // Change the background to color 1
      break;
    case 2:
      // Change the background to color 2
      break;
    case 3:
      // Change the background to color 3
      break;
  }
?>
If you think query string parameters are ugly, you can use path info instead, but this requires you to create a special case rewrite rule that makes the path info "invisible" to WordPress so it doesn't think it's the slug of a page. Whether you want or need this depends on how your permalink configuration in WordPress is.