Index.php is ordering posts strangely

You shouldn’t modify the main query like that. Instead, make a secondary loop:

// The Query
$args = array(
    'post_status' => 'publish',
    'post_type'   => 'post',
    'orderby'     => 'date',
    'order'       => 'desc',
);
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        // Do output
    }
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

Docs