У .net core существует пакет .net core sdk и .net core runtime
Первый нужен для того, чтобы компилировать C# код в IL, также там описана работа GC
Второй это C# реализация базовых классов, например коллекций и массивов
Задача SDK транслировать в IL код, который напишет программист, в том числе и код .net core runtime и выполнять этот код (GC, jit)
Поскольку в .net core работает принцип backward compatibility, то есть любая версия sdk больше указанной в TargetFramework подойдет(ее можно поменять в любой момент), но в таком случае скорость билда и jitting'a методов может измениться
Версия .net core runtime выбирается как первая большая указанной в TargetFramework проекта
Например, если указанная версия netcoreapp2.1, то будет использоваться .net runtime version >= 2.1
На сайте предлагается несколько разных версия runtime, это логично, ведь существуют декстопные приложения, веб-приложения и консольные приложения, поэтому созданы ASP.NET Core Runtime, Desktop Runtime и .Net Core runtime, причем последний включен в первые два
Cоответственно можно создать веб-приложение и консольное приложения, это выбирается на уровне cproj файла