If no featured image, add one of the default images into DB

Im not sure about the random part. But to set a back up featured image if none is set just use

<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} else { ?>
<img src="https://wordpress.stackexchange.com/questions/96146/<?php bloginfo("template_directory'); ?>/images/default-image.jpg" alt="<?php the_title(); ?>" />
<?php } ?> 

Or something like this without major template edits

function autoset_featured() {
          global $post;
          $already_has_thumb = has_post_thumbnail($post->ID);
              if (!$already_has_thumb)  {
              $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
                          if ($attached_image) {
                                foreach ($attached_image as $attachment_id => $attachment) {
                                set_post_thumbnail($post->ID, $attachment_id);
                                }
                           }
                        }
      }
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');