Set featured image randomly from WordPress Database on post submission

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();
}