How to remove /page/2/ from home page?

If the front page is set to display posts then the query for those posts will run regardless of wether your theme shows these posts or not. That’s why you’re getting pagination with no posts. You can test this by temporarily removing your themes front-page.php (or whatever it is). You should see all your posts with correct pagination.

You have 2 options to get around this:

Use a static front page

If you set the front page to static (this can be an empty page) the original query for the homepage will now be just this page – therefore, no pagination.

Alter the main query

Instead of creating a new query using query_posts (which you shouldn’t be doing anyway – but that’s another question), alter the original query. You should be able to do this using the pre_get_posts hook and a combination of is_home() and is_front_page(). Something like this:

/**
 * Alters the font-page main query
 */
add_action( 'pre_get_posts', 'wpse_217284_alter_front_page_query' );
function wpse_217284_alter_front_page_query( $query ) {

    // don't run on the backend
    if ( is_admin() )
      return;

    // Only run on the front page main query
    if ( $query->is_main_query() && is_front_page() ) {

        $query->set( 'orderby', 'rand' );
        $query->set( 'posts_per_page', 10 );
    }

    return;
}

Note, this isn’t tested and is just an example, so may not work as is, but it should give you an idea of what to do.