There is not a way to exclude objects from rules that match them. Most likely, you will need to rearrange your objects using prefixes that meet your needs.
There is a hack... which would involve copying the file into itself frequently enough that it never ages enough to match the rule, but that is obviously delicate. The S3 PUT+Copy operation does allow an object to be copied on top of itself non-destructively without downloading and re-uploading, and this would reset the expiration timer.
But most likely a better solution is to prefix your random filenames with a few static characters. The S3 partition splitting implementation (the way S3 handles bucket capacity scaling) can apparently work just as well with with a static prefix (e.g. images/
) followed by random characters as it can with entirely random keys.