The 23-year-old academy graduate only made a total of 18 first-team appearances for the county following his debut in 2011, and did not play a first-class game in 2015.
"Saying goodbye to a man who has come through the club's youth structure is not something we enjoy doing," managing director of cricket Angus Fraser said.
"The lack of first-team opportunities has frustrated him."
Sandhu featured five times for Middlesex this year, with all of his appearances coming in one-day competitions.
"Gurjit is fit, strong and capable," added Fraser.
"I believe he has the potential to play far more first-team cricket at another club than he has for us and hopefully he will get those opportunities elsewhere."
Middlesex have released left-arm seamer Gurjit Sandhu.