Views random list with different css for result 1
You can get random results in Views by using the random sort filter.
Then there's quite a few ways to target CSS on the first result.  If your using a list style, the first list item will have a views-row-first class.

However, if you want the image to be larger you really want to use a different image style.  This means the field will be different from the rest, and the best way to do that would be to move it to an attachment display.  In there, override the fields and edit the image style.  Override the pager and limit it to 1.

The next problem would be how to exclude the random image from the attachment in the main view (so that you don't get duplicate results).

You can get a view to exclude a result by adding it is an contextual filter. And in the 'more' options, select 'exclude'.  

However, I don't know of a way to pass the result from the attachment into the other display as an argument.  They will both inherit the same arguments.

You could generate a random id somehow, and pass this in to your view. 

But the tricky bit is how you would generate this random id, it could even be done with another view!  And then also how do you pass this into the view.
I can't quite think of an elegant solution. If you're in a hurry, here's some quick and dirty php code you could put into a custom modules hook_menu callback.

$random_id = views_embed_view('your_view_name', 'display_that_outputs_random_id');
print views_embed_view('your_view_name', 'main_display_name', $random_id);


There's definitley a better way, if I can think of something I'll let you know.

Thanks
Leon