There's two methods of moving out a villager
1. Ignoring a villager: Just don't speak a word to the villager. When the villager moves in just introduce yourself and never speak to the villager after that. He will eventually move out with no prior warning.
2. Befriending: You don't necessarily have to be bestest friends with villagers, just until they are able to ping you. Once every two days villagers would ask to leave. There's a chance that your unliked villager will be asking you to move.
Villagers move after 5 days of asking, then they will be boxed up. You can give your moving villager away as a gift or for bells, just make sure the person talks to the boxed villager and leaves on the train. You can get villagers like this also.
This is a list of villagers by species just so you can get perspective of what villagers you want.
Good luck finding your perfect dreamies ^^
- - - Post Merge - - -
There's no 100% way to keep villager permanently, no matter how good of a friend they are they will always have a chance to move.
Phoebe gave me three pictures then she moved unexpectedly ;_;