European champions Portugal have been drawn in the same group as the last two World Cup winners, Germany and France.
Germany will meet France in their opening fixture in Group F.
England will kick off their campaign against Croatia at Wembley Stadium, and they have also been paired with Czech Republic.
Gareth Southgate's side were knocked out by Croatia at last year's World Cup semifinals.
Euro 2016 semifinalists Wales will face Italy, Switzerland and Turkey in Group A.
The tournament will be played in 12 European countries in a one-off format to celebrate the 60th anniversary of the European Championship.
Under the complex rules, all host nations will play their three group games at home until there are two hosts in the same group, in which case a draw decides where they meet.
Group A: Italy, Switzerland, Turkey, Wales
Group B: Belgium, Russia, Denmark, Finland
Group C: Ukraine, Netherlands, Austria, Play-off Winner D (Georgia, Belarus, North Macedonia or Kosovo)
Group D: England, Croatia, Czech Republic, Play-off Winner C (Norway, Serbia, Scotland or Israel)
Group E: Spain, Poland, Sweden, Play-off Winner B (Bosnia and Herzegovina, Northern Ireland, Slovakia or Republic of Ireland)
Group F: Germany, France, Portugal, Play-off Winner A (Bulgaria, Hungary, Iceland or Romania)
Play-off Winner A is allocated to Group F and Play-off Winner D to Group C. If Romania qualifies as winner of Path A, Romania will play in Group C and Play-off Winner D is switched to Group F. The play-off winners will be known in March 2020.
"I'm never sure whether it's a good draw," Southgate told the BBC. "We have played two of the teams before and for us to play at Wembley is something special. We are looking forward to the tournament.
"We know the quality of [Croatia's] midfielders. That's a top-level fixture. I actually had a picture with Croatia coach Zlatko Dalic before. He wanted to be in London so that's interesting from their point of view.
"If you can win and be top seeds then you have to take control of your destiny. Let's hope we have the decision to make. We will take on whoever that comes. Everyone will be thinking the same about playing us."
Italy, who won all 10 qualifying games as they bounced back from failing to make the last World Cup, will face Turkey, Wales and Switzerland in Group A, in Rome and Baku.
"We have a slight advantage by playing at home. Maybe some will think we are favourites but we need to confirm everything on the pitch, as always," Italy coach Roberto Mancini said.
Euro 2008 and 2012 champions Spain, who will jointly host Group E in Bilbao with Dublin, play Sweden, Poland and playoff winner B -- either Bosnia, Slovakia, Ireland or Northern Ireland.
Belgium's opponents in Group B will be Denmark and Russia --who are both host nations -- and Finland, who will be making their first appearance in a European Championship or World Cup.
The Netherlands, who like Italy missed out on the last World Cup, were pitted against Ukraine, Austria and playoff winner A or D in Group C, which will be played in Amsterdam and Bucharest.
Under the complex rules, all host nations will play their group games at home, meaning a number of teams had been allocated their groups before the draw
"The rules are clear, they were accepted by everybody," said UEFA deputy general secretary Giorgio Marchetti. "Portugal are in pot three because they didn't win their group, and the winner of their group was Ukraine.
"And Ukraine, thanks to their results, are in pot one, and everybody accepts it because once again we have clear rules."