This is caused by multiple people sharing the same iCloud account.. When you do this any data you sync with the shared iCloud account such as contacts is merged and will appear on all devices sharing the account. To fix this you both need to have separate iCloud accounts (you can continue to share the same Apple ID for purchasing from the iTunes and app stores).
Begin by deciding which deivce will be keeping the current iCloud account. On the one that will be changing accounts, if there are any photos in photo stream that are not in the camera roll or backed up somewhere else save these to your camera roll by opening the photo stream album in the thumbnail view, tapping Edit, then tap all the photos you want to save, tap Share and tap Save to Camera Roll.
Once this is done, go to Settings>iCloud, scroll to the bottom and tap Delete Account. (This will only delete the account from this device, not from iCloud. The device that will be keeping the account will not be effected by this.) When prompted about what to do with the iCloud data, be sure to select Keep On [iDevice]. Next, set up a new iCloud account using a different Apple ID (if you don't have one, tap Get a Free Apple ID at the bottom). Then turn iCloud data syncing for contacts, etc. back to On, and when prompted about merging with iCloud, choose Merge. This will upload the data to the new account.
Finally, to un-merge the data you will then have to go to icloud.com on your computer and sign into each iCloud account separately and manually delete the data you don't want (such as deleting the other person's contacts from your account, and vice versa).
You should also avoid using the same Apple ID for iMessage and FaceTime (or you're likely to get each other's text messages and FaceTime calls). If you're currently sharing an ID for these services, on one of the devices go to Settings>Messages>Send & Receive, tap the ID, sign out, then sign back in with a separate ID (such as your separate iCloud ID). For FaceTime, do the same thing in Settings>FaceTime.