Depends on the area and the period. In the early Middle Ages (500-1000) names were much more likely to be rooted in the individual's ethnicity. Descendants of Roman provincials had Latin names like Gregory and Julian, girls often just feminized versions of the same like Gregoria and Julia. Members of the new Germanic-speaking ruling classes had Germanic names which were usually created out of two components. One might be Wolf- or Bert- or Rod- (or any number of other elements) and the other might be -bert (again) or -gang or -wald (or -bald, common variation) for boys and -hild or -lind for girls. So you could have boys with names like Wolfgang, Wolfbert, Rodwald, Bertwald, and girls with names like Rodelind, Berthild, etc. They combinations were a little different depending on if you were Frankish, Anglo-Saxon, Lombard, etc., but that's the basic idea.
Around 1000, there's a noticeable shift. The old Germanic names tend to "soften" and contract, and people start choosing from a smaller pool of them. For instance, instead of Hrodgar and Reginhard you get Roger and Richard. Also, the practice of naming children for saints becomes more common, and you wind up with a lot more biblical names - Thomas, Simon, Mary, Elizabeth, etc. That pattern holds down to the end of the Middle Ages.
One easy way to get names - grab a book on medieval history from your library and browse the index.
By the way "Charlemagne" is NOT a medieval name. His name was "Charles" (as rendered into English and French), "Karl" (in German, probably what his family called him) or "Carolus" (the Latin version). After he died, his biographer dubbed him "Charles the Great" to distinguish him from several other Charles' in the family, which is "Charles le Magne" in French and leads to the common modern contraction of "Charlemagne."