The move was announced during Friday night's NHL draft in Pittsburgh.
Visnovsky, who will turn 36 this summer, is entering the final year of a contract that carries a US$5.6 million cap hit but will only see him paid $3 million in salary.
The veteran had just 27 points this season — one year after posting a career-best 68 points.
He played the last three seasons with the Ducks, totalling 29 goals and 79 assists in 165 games.
Visnovsky has also represented Slovakia at nine world championships.