Are there a minimum number of ATP 250 tournaments top 50 players must play each year? Also, do the players select the ATP 250 tournaments they wish to play in, or are the tournaments assigned to the players?
In short, the answer to your first question is "No, there are not." However, there are requirements for top 30 players in regards to ATP World Tour 500 Tournaments.
According to the ATP World Tour official site for the most recent 2016 season- "Top 30 players (based on 2016 year-end Emirates ATP Rankings) must play a minimum of four 500 level tournaments during the calendar year, including at least one event following the US Open (Monte Carlo Masters 1000 event will count towards the minimum of four and all penalties apply)" http://www.atpworldtour.com/en/rankings/rankings-faq
These same sort of requirements simply are not levied on ATP World Tour 250 events.
For the second question, players do select the ATP World Tour 250 tournaments they wish to play in.
Prior to each season beginning, a player (picture Andy Murray for example) comes together with his team to create a tentative schedule for the upcoming season (within ATP Official guidelines mind you.) A variety of factors are taken into account when the schedule is being created, such as the points the player is defending going into each "swing" ("Swings" are typically a portion of time in the season defined by the surface the players are playing on i.e, grass, clay, hard.), predicted fatigue the player may encounter based on previous seasons, among a litany of other reasons. Refocusing though, the liberty a player possesses to create his own schedule gives the player freedom to play as many or as few ATP 250 events as he pleases. Going back to Andy Murray, as of August 2nd 2017, Andy Murray has competed in one ATP World Tour 250 event known as "The Qatar Open." The reason he has competed in a single ATP World Tour 250 tournament is totally at Andy's discretion, and not the ATP's.
1Just to add a little something on to this answer - top ranked players (e.g. top 50 in the world) generally don't play ATP 250 tournaments because their ranking qualifies them for direct entry into the main draw at 500 and 1000 level tournaments which have much larger prize money purses. When top players participate in 250-level events, it's typically because they are being paid an appearance fee (guaranteed money) of some kind, or there aren't any 500 or 1000 level tournaments being held and they want some some match play to warm up for the following weeks' tournament.– jamaussAug 3, 2017 at 7:46