Here is QR Droid Private. It does not access your contact information.
Usually the reason they want contact access is because you can store contact information in a QR code. So when scanned, it sees that it is a contact and adds it to your contacts. without access to your contacts, it would not be able to do this. Another reason is that some of the apps allow you to create QR codes from your contacts. It would need read permission to do this.
Here is an example of a vCard stored in a qr code:

Here is the data that is stored in there:
BEGIN:VCARD N:John Q. Public ORG:Acme TITLE:CEO TEL:3125555555 URL:http://example.com EMAIL:john.q.public@email.com ADR:1234 any street suite 300 Someville\, ST 00000 END:VCARD