If it's essential to name these dynamically created Lists, you could use a Dictionary<string,List<int>>:
Dictionary<string, List<int>> ListDict = new Dictionary<string, List<int>>();
int listsToBuild = 10;
for (int i = 1; i <= listsToBuild; i++)
{
ListDict.Add("List" + i.ToString(), new List<int>());
}
ListDict["List1"].Add(100);
int aValue = ListDict["List1"][0];
To create a new named variable at run-time would require reflection, and I doubt you want to get into that.