Twig: "for" does not display variable content without first displaying all variable content
In Twig you could re-use the pre render callback for each single node, see Cycle comments on field--comment.html.twig, but since you are responsible for the content of the twig variable you can do this when preparing the variable by replacing viewMultiple() with multiple view():

foreach ($related_nodes as $node) {
  $variables['related_nodes'][] = \Drupal::entityTypeManager()
    -&gt;getViewBuilder('node')
    -&gt;view($node, $view_mode, $current_node-&gt;language()-&gt;getId());
}


Then in Twig you can use a normal loop:

        {% for rel_node in related_nodes %}
           &lt;div class="col-md-4 col-xs-6"&gt;{{ loop.index }} - {{ rel_node }}&lt;/div&gt;
        {% endfor %}