Spring rate is affected by:
- Diameter of the wire (smaller = lower spring rate)
- Number of active coils (more = lower spring rate)
- Wound diameter of the spring (bigger = lower spring rate)
- Material properties (but you need something very similar in properties to spring steel and all steels have approximately the same elastic properties which is what affects the spring rate, only the fatigue and yield properties vary, but spring steels are chosen as such for a reason, so for realistic and normal applications there is not anything productive that can be done with this)
You need a certain amount of "seat" force on the spring in order to ensure that the valve remains closed and doesn't bounce off the seat. You need a certain amount of force on the spring as it goes over the nose of the cam lobe at maximum possible engine RPM plus a good factor more, to protect against "valve float" in which the follower leaves contact with the cam lobe. Those two forces at known compression values of the spring will define the spring's necessary spring rate and free length. When you start getting subject to spring surge and the like, it gets really, really complicated. Very often, valve springs are chosen so that at maximum lift, the coils are not all that many millimeters away from "coil bind". Reason is that the spring can't bounce around much if it's almost completely contained.
Don't neglect the effect of the cam lobe profile. A profile that holds the valve near max opening for quite a while and limits acceleration over the top of the lobe won't need as much spring force to overcome valve float. But, unless a really long duration is acceptable, this forces large accelerations off the seat and approaching the seat. The geometry of the lifters may dictate some limitations in this regard. (you can't have concave cam profiles with flat-tappet lifters, for example, and you can't have the cam profile push too close to the edge of the lifter without really bad things happening.)
It will probably help if you explain exactly what it is that you are trying to accomplish and why, and exactly what the application is.