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.