arc4random cannot fail Look at the definitions: uint32_t arc4random(void); void arc4random_buf(void *buf, size_t nbytes); uint32_t arc4random_uniform(uint32_t upper_bound); All 3 functions guarantee a result. They will not fail, and cannot return an error.