While watching the Tudors, one thing I noticed was that most male first names were either Thomas, Charles or Edward. Is that historically accurate and if so, is there a reason behind this lack of name variety? (Like a religious reason for instance)
I'm not familiar with the television series you're referring to, but it is generally good advice not to take too much from watching TV.
There was plenty of variance in names across the country; plenty of people were called George, William, Robert, Norman, Christopher, Andrew, Luke, John, James, Oliver, Henry etc.
However, there was a certain tendency to keep only a small variance within one family; sons named after fathers and grandfathers. So if you're Thomas, your first son would also be Thomas, and your second might be Richard. Their sons would be Thomas and Richard (from Thomas), and perhaps Richard and Thomas (from Richard). If the show is about one or two families, this would be reasonable.
England at the time had a fairly widespread system of parish registers, which recorded the christenings, marriages and burials of many people, although it was a bit patchy at first. You can search a good selection of the records at the website www.famlysearch.org.
I've just done that and seen that the frequency of first names from births from 1485 to 1603 as listed below. The simple answer to your question is no, Charles and Edward in particular were fairly uncommon although Thomas was popular. Other popular names included John and William. Feel free to try out more names and edit this answer to add them in!
Note Charles was only really introduced to England after the Stuart kings started to rule in the 1600s.
George - 24,455
Richard - 54,803
William - 65,587
Robert - 37,590
Norman - 5
Christopher - 5,607
Andrew - 2,143
Luke - 563
John - 178,778
James - 18,206
Oliver - 814
Henry - 20,161