I currently have 3 1TB drives, a couple 500GB ones and some 750GB ones. Can I put them all in a RAID 5 configuration or do they need to be of same size?
There are a couple of methods to do this.
1) Use every drive as a separate node in the RAID-5 array. Only 500GB is used in every disk, the other space is wasted. This is typically the only option in a hardware raid controller.
2) Use a software RAID system combined with a logical volume system like Linux LVM. Using LVM, you can create a virtual drive of 1TB by combining two 500GB drives. This virtual drive can serve as a single drive in your RAID-5 array. Once one of these drives fails, the whole virtual drive is considered faulty. So please note you will need 3 virtual disks of the same size.
3) Use a RAID system that allows redundant storage on non-equal volumes. ZFS is a good example of this.
It depends on the RAID controller (hardware or software) that you are using. Some will allow different sizes & types of drives while others require identical drives (not just size, but spin rate, throughput, etc). Some of the controllers that will allow you use different sizes will force you to the least common denominator. In your case, that kind of controller would find you with 5 500GB drives set up, which may or may not allow you to access the remaining space on those larger drives separately.
Unfortunately, the only answer will be to investigate various RAID controllers, starting with whatever you might have built in to your OS or motherboard and see if you can determine what configurations they will allow. After that, you might research other controllers that are available.