Here is a way:
// listen for post being published
add_action(\'publish_post\', \'dreis_random_featured_image\');
function dreis_random_featured_image() {
global $post;
// find one random image
$args = array(
\'post_type\' => \'attachment\',
\'post_mime_type\' => \'image\',
\'post_status\' => \'inherit\',
\'posts_per_page\' => 1,
\'orderby\' => \'rand\'
);
$random_image = new WP_Query($args);
foreach($random_image as $image){
// set as thumbnail
set_post_thumbnail($post->ID, $image->ID);
}
// reset loop to avoid weirdness
wp_reset_query();
}